Eug*_*kov 10 binding command mvvm xamarin.android mvvmcross
我正在尝试使用带有CommandParameter的 fire MvxCommand,但遇到以下问题: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>
Run Code Online (Sandbox Code Playgroud)
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
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我检查param变量为null时.
我做错了什么?
Stu*_*art 10
您的代码在我的源代码树头上为我工作.
但这个功能只有两周了.
我的猜测是,这个功能要么没有进入你正在使用的版本,要么就是它有一个bug.
你能检查一下这个绑定的调试跟踪吗?那里有信息吗?
CommandParameter是一个未知的符号,那么我的猜测是你需要自己构建最新的源代码 - 或者等待新的版本.我知道我们确实解决的一件事是一个价值转换器问题,其中的Cirrious.MvvmCross.Binding.dll基础ValueConverter不仅仅是通过重写Setup.ValueConverterAssemblies来注册ValueConverter所需的CommandParameter