如何传递RelayCommand的多个参数?

M.A*_*zad 4 wpf mvvm-light

可能重复:
使用WPF绑定传递两个命令参数

我需要将两个参数发送到我的RelayCommand,如:

public RelayCommand<String,Int> MyCommand {get;set;} Or
public RelayCommand<EventArgument,String> MyCommand {get;set;}
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 12

将它们包裹在一个对象中:

public RelayCommand<MyModel> MyCommand { get; set; }
Run Code Online (Sandbox Code Playgroud)

MyModel将包含两个属性:

public class MyModel
{
    public int Id { get; set; }
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)


Vla*_*lov 8

您可以使用不同的模型类来传递多个参数.并且为了初始化它们,您可以使用这样的xaml元素:

<Button Command="{Binding YourCommand}">
   <Button.CommandParameter>
      <YourNS:YourModel Id="{Binding PathForId}" Name="{Binding PathForName}"/>
   </Button.CommandParameter>
</Button>
Run Code Online (Sandbox Code Playgroud)

这将构造一个新的YourModel对象以传递给命令,然后通过绑定初始化其属性.