我有一个复杂的查询接口,需要通过 RelayCommand 传递给我的模型。这包括一些组合框、复选框和文本输入。
我可以轻松地传递单个命令参数(即 RelayCommand 等),但如果是 RelayCommand 等,我将如何封装命令。这似乎有点过分。
任何提示将不胜感激
谢谢
我有一个复杂的查询接口,需要通过 RelayCommand 传递给我的模型。这包括一些组合框、复选框和文本输入。
我可以轻松地传递单个命令参数(即 RelayCommand 等),但如果是 RelayCommand 等,我将如何封装命令。这似乎有点过分。
任何提示将不胜感激
谢谢
可接受的解决方案是将所有组合框、复选框和文本输入绑定到视图模型的特定属性,然后在 RelayCommand 处理程序中使用 props 值,而不是将数据作为 CommandParameter 传递。
这是一个例子:
你的 XAML:
<TextBox Text={Binding Arg1} />
<TextBox Text={Binding Arg2} />
<Button Command={Binding Cmd} />
你的 ViewModel.cs:
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);
}