【问题标题】:How to Passing multiple parameters RelayCommand? [duplicate]如何传递多个参数 RelayCommand? [复制]
【发布时间】:2012-01-06 23:08:16
【问题描述】:

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

我需要向我的 RelayCommand 发送两个参数,例如:

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

【问题讨论】:

    标签: wpf mvvm-light


    【解决方案1】:

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

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

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

    【讨论】:

    【解决方案2】:

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

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

    其中 MyModel 将包含两个属性:

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

    【讨论】:

    • 事实上我想发送到我的命令:RelayCommand
    • @mtaboy,RelayCommand的定义方式,只有一种可以传。因此,如果您想要多种类型,则必须将它们包装到一个单独的模型中,如我的回答所示。
    • 如何将 xaml 代码中的 Id 和 Name 设置为 MyModel ?
    • @mtaboy,您的主视图模型可能具有这种类型的属性。然后您可以使用具有正确绑定语法的 CommandParameter。
    • 你是对的..但是,如何在 Xaml 代码中设置 Name 和 Id 属性?
    猜你喜欢
    • 2019-03-02
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 2018-12-25
    • 2018-04-08
    • 1970-01-01
    相关资源
    最近更新 更多