如何传递RelayCommand的多个参数?

时间:2011-11-26 16:21:23

标签: wpf mvvm-light

  

可能重复:
  Passing two command parameters using a WPF binding

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

public RelayCommand<String,Int> MyCommand {get;set;} Or
public RelayCommand<EventArgument,String> MyCommand {get;set;}

2 个答案:

答案 0 :(得分:12)

将它们包裹在一个物体中:

public RelayCommand<MyModel> MyCommand { get; set; }

其中MyModel将包含两个属性:

public class MyModel
{
    public int Id { get; set; }
    public string Name { get; set; }
}

答案 1 :(得分:8)

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

<Button Command="{Binding YourCommand}">
   <Button.CommandParameter>
      <YourNS:YourModel Id="{Binding PathForId}" Name="{Binding PathForName}"/>
   </Button.CommandParameter>
</Button>

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