我正在使用MVVMCross在Xamarin制作应用程序。这是我的代码:
Android View(iOS几乎相同):
var button = (Button)FindViewById(Resource.Id.button3);
var set = this.CreateBindingSet<MenuView, MenuViewModel>();
set.Bind(button).To(vm => vm.CommandNavigateToSecondPage);
set.Apply();
Core ViewModel:
public ICommand CommandNavigateToSecondPage
{
get
{
return new MvxCommand((() =>
{
ShowViewModel<SecondPageViewModel>();
}));
}
}
我希望有一个默认的后退按钮,可以将我导航到上一页。我在核心中用简单的功能做了相同的导航,并且有后退按钮。像这样:
public void Navigate()
{
ShowViewModel<SecondPageViewModel>();
}
MVVM是关于绑定的,这就是我想以这种方式实现它的原因。
答案 0 :(得分:1)
在android
中显示默认的主页/后退按钮[Activity (Label = "MyView")]
public class MyView : MvxActivity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView(Resource.Layout.ThirdNativeView);
ActionBar.SetDisplayHomeAsUpEnabled(true);
}
/// handle back navigation here
public override bool OnOptionsItemSelected(IMenuItem item)
{
switch (item.ItemId)
{
case Android.Resource.Id.Home:
//Execute viewModel command here
this.Finish();
return true;
default:
return base.OnOptionsItemSelected(item);
}
}
}
有关执行命令here
的更多信息