Data binding Xamarin iOS:MvvMCross绑定导航项的后退按钮
我想绑定导航项的back按钮,每当用户单击back按钮时,我想在视图模型中执行绑定到它的一些代码 我当前的代码: 视图:Data binding Xamarin iOS:MvvMCross绑定导航项的后退按钮,data-binding,xamarin,xamarin.ios,mvvmcross,uinavigationitem,Data Binding,Xamarin,Xamarin.ios,Mvvmcross,Uinavigationitem,我想绑定导航项的back按钮,每当用户单击back按钮时,我想在视图模型中执行绑定到它的一些代码 我当前的代码: 视图: 当我点击后退按钮时,我希望它点击DoRefresh(),但它不是。有人能指出错误或帮我解决吗?您可以使用以下代码将单击的绑定到您的ICommand: this.AddBindings(new Dictionary<object, string>() { { NavigationItem.LeftBarButtonItem, "Clicked CheckIf
当我点击后退按钮时,我希望它点击DoRefresh(),但它不是。有人能指出错误或帮我解决吗?您可以使用以下代码将单击的
绑定到您的ICommand
:
this.AddBindings(new Dictionary<object, string>()
{
{ NavigationItem.LeftBarButtonItem, "Clicked CheckIfLoading" }
});
this.AddBindings(新字典()
{
{NavigationItem.LeftBarButtonItem,“单击了CheckiLoading”}
});
旁注
如果单击的不是默认绑定,则以下行可能不起作用:
bSet.Bind(NavigationItem.LeftBarButtonItem).To(vm=>vm.CheckiLoading)代码>
使用.For(labda)
方法可以实现绑定到特定属性的其他方法,如下所示:
bSet.Bind(NavigationItem.LeftBarButtonItem).For(lb=>lb.Clicked).To(vm=>vm.checkiLoading)代码>
但在这种情况下,这将不起作用,因为单击lb时需要左手边的动作(+=
或-=
)
有关绑定的更多信息,请查看
private ICommand checkIfLoading;
public xViewModel()
: base()
{
this.messenger = mvxMessenger;
checkIfLoading = new MvxCommand(DoRefresh);
}
public ICommand CheckIfLoading { get { return checkIfLoading; } }
private async void DoRefresh()
{
await Task.Delay(5000);
}
this.AddBindings(new Dictionary<object, string>()
{
{ NavigationItem.LeftBarButtonItem, "Clicked CheckIfLoading" }
});