我正在尝试使用fireMvxCommand
和CommandParameter
:
<Mvx.MvxListView
style="@style/MyList"
local:MvxBind="ItemsSource Items;"
local:MvxItemTemplate="@layout/itemfavorite" />
这是我在
ViemModel
的财产: public List<Data> Items
{
get { return _items; }
set
{
_items = value;
RaisePropertyChanged(() => Items);
}
}
这是我的
model
:public class Data
{
public int Id{get;set;}
public string Name {get;set;}
public ICommand Action {get;set;}
}
它是我的
command
(用于数据中): public ICommand MyCommand
{
get
{
return new MvxCommand<int>(async (id) =>
{
.....
}
}
这是我的
MvxItemTemplate
:……
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start"
android:layout_margin="10dp"
local:MvxBind="Click Action,CommandParameter=Id"/>
如果我使用“
CommandParameter=Id
”-我将得到未处理的异常。CommandParameter=1
“-这是工作。但我需要传递一个CommandParameter
值字段id。这可能吗? 最佳答案
commandparameter的值是静态值。很遗憾,不能使用属性的名称作为命令参数传递。
因为mvx试图将字符串“id”转换为int,所以出现了异常。
您只需在命令处理程序中使用它,而不是传递id。
public ICommand MyCommand
{
get
{
return new MvxCommand(async () =>
{
// use Id here
}
}
}