2016-08-13 3 views
0

Xamarin.Forms xaml 페이지에 ListViewCachingStrategy=RecycleElement을 구현하려고했으나 스크롤하려고 시도 할 때까지 모든 내용이 올바르게 표시됩니다. 그런 다음 INativeElementView를 구현해야한다는 예외가 생깁니다. 각 네이티브 플랫폼의 UI 디자이너에서 뷰를 디자인하고 각각에 대한 사용자 지정 렌더러를 보유했습니다. RecycleElement 대신 RetainElement을 사용하면이 충돌이 발생하지 않습니다. 어떤 아이디어 나 제안?INativeElementView는 어떻게 구현 되나요?

편집 : 디자이너에서 만든 내보기는 FeeViewCell이고, 올바르게 이해하면 INativeElementView가 (FeeViewCell.cs에서) 구현되어야하는 위치입니다. 내 문제는 이제 요소에 캐스팅 System.InvalidCastException 지정된 캐스트가 유효하지 않음을 반환합니다. 여기 INativeElementView를 구현하는 내 코드입니다 :

public Element Element { get { return this.ToView() as Element; } } 가 나는 또한 자 마린 포럼 here.

답변

0

INativeNativeView 인터페이스는 사용자 정의 셀 클래스에서 구현 될 필요가에 대한 질문으로이 있습니다. iOS의 필자는 맞춤 렌더러의 예제에서 pcl의 항목 인 FeeCell을 제공합니다.

public Element Element 
     { 
      get { return new FeeCell(); } 
     } 
: 그것은 또한이 작업을 수행하기 위해 노력

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 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 클래스의 일부의 일부입니다

관련 문제