我正在尝试使用fire MvxCommand with CommandParameter,但是面临以下问题:
MyView.axml包含:

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button1"
        local:MvxBind="Click MyCommand, CommandParameter=foo" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button2"
        local:MvxBind="Click MyCommand, CommandParameter=bar" />
</LinearLayout>

MyViewModel.cs:
public class MyViewModel : MvxViewModel
{
    public ICommand MyCommand { get; private set; }

    public MyViewModel()
    {                                    // param is null
      MyCommand = new MvxCommand<string>(param =>
      {
          if (param == "foo")
          {
            // do something
          }
          else if (param == "bar")
          {
            // do something else
          }
      });
    }
}

但是,当我检查参数变量时,为空

我做错了什么?

最佳答案

您的代码在我的源代码树头上为我工作。

但是此功能只有两个星期的历史了。

我的猜测是此功能或者没有加入到您正在使用的版本中,或者有一个错误。

您可以检查此绑定(bind)的调试跟踪吗?那里有什么信息吗?

  • 如果跟踪表明CommandParameter是未知符号,那么我的猜测是您将需要自己构建最新的源代码-或等待新版本发布。
  • 如果跟踪显示其他提示,则您可以在设置过程中解决问题。

  • 我知道我们已解决的一件事是一个值转换器问题,其中不仅仅是基于Cirrious.MvvmCross.Binding.dllValueConverter重写了Setup.ValueConverterAssemblies来注册此ValueConverter所需的CommandParameter

    10-08 18:09