2016-08-13 4 views
0

Я пытался реализовать ListViewCachingStrategy=RecycleElement на странице Xamarin.Forms xaml, и все отображается правильно, пока я не попробую прокрутить. Затем я получаю исключение, в котором говорится, что INativeElementView необходимо реализовать. Я разработал представления в дизайне ui каждой собственной платформы и для каждого из них создан собственный рендерер. Этот сбой не происходит, если я использую RetainElement вместо RecycleElement. Любые идеи или предложения?Как предполагается внедрение INativeElementView?

Редактировать: Мое представление, которое я создал в конструкторе, называется FeeViewCell, и если я правильно понимаю, что предполагается реализовать INativeElementView (в FeeViewCell.cs). Моя проблема теперь в том, что приведение к элементу возвращает исключение System.InvalidCastException, говорящее, что указанный приведение недействительно. Вот мой код, реализующий INativeElementView:

public Element Element { get { return this.ToView() as Element; } } У меня также есть это как вопрос на форуме Xamarin here.

ответ

0

Интерфейс INativeNativeView должен быть реализован в классе пользовательских ячеек. В моем примере в iOS я в пользовательском рендерере предоставляет элемент, который исходит от pcl в моем случае FeeCell. Это часть моего пользовательского визуализатора

public class FeeCellRenderer : ViewCellRenderer 
    { 
     public override UIKit.UITableViewCell GetCell(Cell item, UIKit.UITableViewCell reusableCell, UIKit.UITableView tv) 
     { 
      var x = (FeeCell)item; 
      //Do whatever you need to here. 
     } 
     } 

Это часть моего пользовательского класса Ui:

public partial class FeeViewCell : UITableViewCell, INativeElementView 
{ 
    public static readonly NSString Key = new NSString(nameof(FeeViewCell)); 
    Element _element; 
public Element Element 
     { 
      get { return _element; } 
      set { _element = value; } 
     } 
} 

Он также работает, чтобы сделать это:

public Element Element 
     { 
      get { return new FeeCell(); } 
     } 

 Смежные вопросы

  • Нет связанных вопросов^_^