作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试将 fire MvxCommand
与 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);
}
}
这是我的模型
:
public class Data
{
public int Id{get;set;}
public string Name {get;set;}
public ICommand Action {get;set;}
}
这是我的命令
(在数据中使用):
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 试图将 string“Id”转换为 int。
无需传递 Id,您只需在命令处理程序中使用它即可。
public ICommand MyCommand
{
get
{
return new MvxCommand(async () =>
{
// use Id here
}
}
}
关于android - MvxCommand With CommandParameter 绑定(bind)到字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31025627/
我是一名优秀的程序员,十分优秀!