Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android xamarin.forms从自定义渲染器访问viewmodel属性_Android_Xamarin.forms_Custom Renderer - Fatal编程技术网

Android xamarin.forms从自定义渲染器访问viewmodel属性

Android xamarin.forms从自定义渲染器访问viewmodel属性,android,xamarin.forms,custom-renderer,Android,Xamarin.forms,Custom Renderer,我有一个自定义页面渲染器,其布局包括一个ListView Droid项目布局MatchPage.xml: <android.support.design.widget.CoordinatorLayout [...] <ListView android:id="@+id/scrollableview" android:layout_width="match_parent" android:layout_height="match_parent"/>

我有一个自定义页面渲染器,其布局包括一个ListView

Droid项目布局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 

通常您不需要从渲染器设置源代码,我不知道您为什么需要这个。渲染器主要用于显示内容,而不是设置,但如果您坚持


在渲染器中,您可以访问作为匹配页面的元素。我假设您将ViewModel作为页面的成员,因此您可以访问模型中的列表。

是的,它工作正常。我能够从渲染器中检索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