2016-02-27 35 views
5

我在我的MvvmCross 3.5.1应用程序中使用了Android工具栏,但是一旦我将其更新到MvvmCross 4.0数据绑定已损坏。只要没有基础程序兼容性活动我要实现我自己的:使用AppCompatActivity更新到MvvmCross 4.0后DataBindings被破坏使用AppCompatActivity

MvxActionBarEventSourceActivity : AppCompatActivity , IMvxEventSourceActivity 
{ 
... 
} 

然后基地绑定MVX活动:

MvxActionBarActivity : MvxActionBarEventSourceActivity, IMvxAndroidView 
{ 
... 
} 

应用启动后就好了,我可以看到我的工具栏,但绑定只是“沉默”而不工作。与MvvmCross 3.5相同的实现工程。

你可以找到完整的示例在这里: https://dl.dropboxusercontent.com/u/19503836/MvvmCross4_Toolbar_Bindings.zip

请指教。

回答

4

你需要重写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代替Actionbar也可用一个例子:https://github.com/MvvmCross/MvvmCross-AndroidSupport/tree/master/Samples

+0

的作品就像一个魅力!我确实使用了mvvmcross支持nuget软件包中的MvxAppCompatActivity,它工作得很好。谢谢! –

+0

死mvvmcross链接。 –