2017-06-28 21 views
0

私はListViewを含むレイアウトのカスタムPageRendererを持っています。xamarin.formsカスタムレンダラーのviewmodelプロパティにアクセス

ドロイドプロジェクトのレイアウトMatchPage.xml:

<android.support.design.widget.CoordinatorLayout 
[...] 
    <ListView 
    android:id="@+id/scrollableview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 
[...] 
</android.support.design.widget.CoordinatorLayout 

ドロイドプロジェクトのカスタムレンダラ:私のxamarin.formsにViewModelにこのプロパティを持っている場合は、リストビューのソースを設定する方法

[assembly: ExportRenderer(typeof(MatchPage), typeof(MatchPageRenderer))] 
namespace beSupporter.Droid.Renderers 
{ 
    public class MatchPageRenderer : PageRenderer 
    { 
     Activity activity; 

     protected override void OnElementChanged(ElementChangedEventArgs<Page> e) 
     { 
      base.OnElementChanged(e); 

      if (e.OldElement != null || Element == null) 
      { 
       return; 
      } 

       activity = this.Context as Activity; 
       activity.SetContentView(Resource.Layout.MatchPage); 

       var listView = (Android.Widget.ListView) this.FindViewById(Resource.Id.scrollableview); 
       // HERE SET THE SOURCE 
     } 
    } 
} 

public List<Fact> Facts 

答えて

0

通常、レンダリング元からソースを設定しないため、なぜこれが必要なのかわかりません。レンダラーは主に物事を表示するために使用されていますが、あなたが主張している場合は...

レンダラーでは、あなたのマッチページであるエレメントにアクセスできます。 ViewModelをページのメンバーとして所有しているので、モデル内のリストにアクセスできます。

+0

あなたのために機能しましたか? –

+0

はい、うまくいきました。私はレンダラーからビューモデルを取得することができました。 – Longa

関連する問題