我正在尝试使用fireMvxCommandCommandParameter

   <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
        }
    }
}

10-08 11:35