Sve*_*übe 5 parameters binding command xamarin.ios mvvmcross
如何通过指定命令参数将命令绑定到MvvMCross(Xamarin.iOS)中的代码中的按钮?
// command definition
public MvxCommand SaveDealerDataCommand
{
get { return new MvxCommand<bool>(DoSaveDealerDataAction); }
}
public void DoSaveDealerDataAction(bool show)
{
//...
}
// binding
bindingset.Bind(saveButton).To(vm => vm.SaveDealerDataCommand);
Run Code Online (Sandbox Code Playgroud)
我在哪里可以指定将传递给命令的参数(true/false)?
Android和iOS按钮的CommandParameter属性与Windows的属性不同.
但是,MvvmCross最近推出了一种CommandParameter通过Value Converters 引入绑定的方法- 请参阅http://slodge.blogspot.co.uk/2013/06/commandparameter-binding.html
此绑定应该如下:
bindingset
.Bind(saveButton)
.To(vm => vm.SaveDealerDataCommand)
.WithConversion("CommandParameter", true);
Run Code Online (Sandbox Code Playgroud)
要么:
bindingset
.Bind(saveButton)
.To(vm => vm.SaveDealerDataCommand)
.WithConversion(new MvxCommandParameterValueConverter(), true);
Run Code Online (Sandbox Code Playgroud)
请注意,此CommandParameter绑定不完全在3.0.8.1包中,这是稳定的nuget版本,因此为了完成这项工作,您可能需要:
在Setup.cs中添加此手动值转换器注册
protected override void FillValueConverters(IMvxValueConverterRegistry registry)
{
base.FillValueConverters(registry);
registry.AddOrOverwrite(
"CommandParameter",
new Cirrious.MvvmCross.Binding.MvxCommandParameterValueConverter()
);
}
Run Code Online (Sandbox Code Playgroud)或者使用自3.0.8.1以来上传的beta nuget软件包之一(设置nuget以包含预发布以查看这些软件包).
或者自己构建源代码
| 归档时间: |
|
| 查看次数: |
12635 次 |
| 最近记录: |