android - 为 MvxFragment 设置 ViewModel

标签 android xamarin fragment viewmodel mvvmcross

我正在开发一个使用 Xamarin.AndroidMVVMCross 的应用程序,我在尝试为 fragment (MvxFragment) 设置 ViewModel (MvxViewModel) 时遇到了一些问题).

到目前为止,在我的研究中,我找到了一些示例,但它们似乎已经过时,因此不再有用。

https://forums.xamarin.com/discussion/3652/mvvmcross-activity-vs-fragment http://slodge.blogspot.com/2013/06/n26-fragments-n1-days-of-mvvmcross.html

我的具体情况是,我正在尝试创建一个带有抽屉布局的应用程序,我工作得很好,问题是当我通过 FragmentManagerMvxFragment 子类时strong> ViewModel 未与 View 关联(在我将 View 从 Activity 更改为 Fragment 之前,ViewModel 已正确关联。)

当我查找有关如何执行此操作的一些文档时,我发现了以下代码

    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        var ignored = base.OnCreateView(inflater, container, savedInstanceState);
        return this.BindingInflate(Resource.Layout.Fragment_Detail, null);
    }

问题在于 MvxFragment 中没有方法 BindingInflate(...)

这是我的 OnCreateView 的样子

    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        var ignored = base.OnCreateView(inflater, container, savedInstanceState);
        var view = inflater.Inflate(Resource.Layout.HomeView, container, false);
        return view;
    }

所以我的问题归结为:如何将我的 ViewModel 与作为 MVxFragment 扩展的 View 相关联?

不确定这是否有帮助,但我正在这样创建 fragment

var fragment = new HomeView();
FragmentManager.BeginTransaction().Replace(Resource.Id.content_frame, fragment).Commit();

最佳答案

我不敢相信我错过了这个,但解决方案非常简单。我所要做的就是添加这个。

using Cirrious.MvvmCross.Binding.Droid.BindingContext;

关于android - 为 MvxFragment 设置 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25367107/

相关文章:

java - 如何在 Eclipse 中创建自定义 GUI 控件以用于 Android 应用程序布局?

android - 将多个标志传递给android中的 Intent

c# - 如何从现有列表中获取与关键字匹配的项目列表并忽略大小写(不区分大小写)?

c# - 使用 MVVM 更改按钮 BackgroundColor

android - 如何在主 fragment 中单击按钮时打开抽屉导航?

android - Listview 设置适配器 fragment 空指针异常

javascript - Phonegap使用媒体插件播放音频

android - 日期更改为过去日期时未收到日期更改的广播接收器

c# - 如何将 ActivityIndi​​cator 添加到外壳弹出窗口

android - 使用抽屉导航更改 fragment (?)布局或 Activity