我正在尝试使用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.dll
的ValueConverter
重写了Setup.ValueConverterAssemblies
来注册此ValueConverter
所需的CommandParameter