Wpf 使用RelayCommand向MVVM模型发送复杂数据

Wpf 使用RelayCommand向MVVM模型发送复杂数据,wpf,mvvm,relaycommand,Wpf,Mvvm,Relaycommand,我有一个复杂的查询接口,需要通过RelayCommand传递给我的模型。这包括一些组合框、复选框和文本输入 我可以很容易地传递单个commandparameter(即RelayCommand等),但是如果是RelayCommand等,我将如何封装这些命令。这似乎有点过分 如有任何提示,将不胜感激 感谢可接受的解决方案是将所有组合框、复选框和文本输入绑定到视图模型的特定属性,然后在RelayCommand处理程序中使用props值,而不是将数据作为CommandParameter传递 以下是一个例

我有一个复杂的查询接口,需要通过RelayCommand传递给我的模型。这包括一些组合框、复选框和文本输入

我可以很容易地传递单个commandparameter(即RelayCommand等),但是如果是RelayCommand等,我将如何封装这些命令。这似乎有点过分

如有任何提示,将不胜感激


感谢

可接受的解决方案是将所有组合框、复选框和文本输入绑定到视图模型的特定属性,然后在RelayCommand处理程序中使用props值,而不是将数据作为CommandParameter传递

以下是一个例子:

您的XAML:

<TextBox Text={Binding Arg1} />
<TextBox Text={Binding Arg2} />
<Button Command={Binding Cmd} />

为什么这会被认为是一种变通方法,而不是按照设计使用模式。是的,这是我的经验中典型的使用模式。这个参数很少使用。完美的,非常棒的,有用的答案,大家都做得很好。
public string Arg1 { get; set; }
public string Arg2 { get; set; }
public ICommand Cmd { get; set; }

... 

Cmd = new RelayCommand(OnCmd);

...

// We will not use command parameter at all
private void OnCmd(object o) 
{
    // Some logic that uses a lot of arguments
    Console.WriteLine(Arg1 + Arg2);
}