gpt4 book ai didi

binding - MvvMCross 带参数的绑定(bind)命令(在 C# 代码中)

转载 作者:行者123 更新时间:2023-12-04 17:22:47 26 4
gpt4 key购买 nike

如何通过指定命令参数将命令绑定(bind)到 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);

我在哪里可以指定将传递给命令的参数(真/假)?

最佳答案

Android 和 iOS 按钮没有 CommandParameter属性的方式与 Windows 相同。

不过MvvmCross最近确实介绍了一种引入CommandParameter的方式通过值转换器绑定(bind) - 见 http://slodge.blogspot.co.uk/2013/06/commandparameter-binding.html

此绑定(bind)应按以下方式工作:

 bindingset
.Bind(saveButton)
.To(vm => vm.SaveDealerDataCommand)
.WithConversion("CommandParameter", true);

或者:
 bindingset
.Bind(saveButton)
.To(vm => vm.SaveDealerDataCommand)
.WithConversion(new MvxCommandParameterValueConverter(), true);

请注意,此 CommandParameter绑定(bind)并不完全在 3.0.8.1 包中,它是稳定的 nuget 版本,因此要完成这项工作,您可能需要:
  • 在您的 Setup.cs 中添加此手动值转换器注册
    protected override void FillValueConverters(IMvxValueConverterRegistry registry)
    {
    base.FillValueConverters(registry);
    registry.AddOrOverwrite(
    "CommandParameter",
    new Cirrious.MvvmCross.Binding.MvxCommandParameterValueConverter()
    );
    }
  • 使用自 3.0.8.1 以来上传的 beta nuget 包之一(将 nuget 设置为包含预发布版本以查看这些包)。
  • 自己构建源代码
  • 关于binding - MvvMCross 带参数的绑定(bind)命令(在 C# 代码中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17492742/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com