使用 AppCompatActivity 更新到 MvvmCross 4.0 后数据绑定被破坏

DataBindings are broken after update to MvvmCross 4.0 when using AppCompatActivity

我在我的 MvvmCross 3.5.1 应用程序中使用 android 工具栏,但是一旦我将它更新到 MvvmCross 4.0,数据绑定就被破坏了。只要没有基础 appcompat activity 我就必须自己实现:

MvxActionBarEventSourceActivity : AppCompatActivity , IMvxEventSourceActivity
{
 ...
}

然后是基础可绑定 mvx activity:

MvxActionBarActivity : MvxActionBarEventSourceActivity, IMvxAndroidView
{
 ...
}

应用程序启动正常,我可以看到我的工具栏,但绑定只是 "silent" 并且不起作用。 MvvmCross 3.5 的实现同样有效。

您可以在此处找到完整示例: https://dl.dropboxusercontent.com/u/19503836/MvvmCross4_Toolbar_Bindings.zip

请指教

您需要覆盖 OnCreateViewAttachBaseContext 并使用 MvxAppCompatActivityHelper 来支持绑定:https://github.com/MvvmCross/MvvmCross-AndroidSupport/blob/master/MvvmCross.Droid.Support.V7.AppCompat/MvxAppCompatActivity.cs#L78

    public override View OnCreateView(View parent, string name, Context context, IAttributeSet attrs)
    {
        var view = MvxAppCompatActivityHelper.OnCreateView(parent, name, context, attrs);
        return view ?? base.OnCreateView(parent, name, context, attrs);
    }

    protected override void AttachBaseContext(Context @base)
    {
        base.AttachBaseContext(MvxContextWrapper.Wrap(@base, this));
    }

有一个示例可用于实施 Toolbar 而不是 Actionbarhttps://github.com/MvvmCross/MvvmCross-AndroidSupport/tree/master/Samples