繁体   English   中英

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

[英]xamarin.forms access viewmodel property from custom renderer

我有一个自定义的PageRenderer,其布局包括一个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 

Droid项目自定义渲染器:

[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
        }
    }
}

如果在我的xamarin.forms ViewModel中有一个此属性,如何设置listView的源?

public List<Fact> Facts

通常,您不设置渲染器的源,我不确定为什么需要此源。 渲染器主要用于显示事物,而不是用于设置,但是如果您坚持要...

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM