複雑なクエリインターフェイスがあり、RelayCommandを介してモデルに渡す必要があります。これは、いくつかのコンボボックス、チェックボックス、およびテキスト入力で構成されています。
単一のコマンドパラメータ(RelayCommandなど)を簡単に渡すことができますが、RelayCommandなどの場合、コマンドをどのようにカプセル化するのでしょうか。これは少し過剰に思えます。
ヒントをいただければ幸いです
ありがとう
複雑なクエリインターフェイスがあり、RelayCommandを介してモデルに渡す必要があります。これは、いくつかのコンボボックス、チェックボックス、およびテキスト入力で構成されています。
単一のコマンドパラメータ(RelayCommandなど)を簡単に渡すことができますが、RelayCommandなどの場合、コマンドをどのようにカプセル化するのでしょうか。これは少し過剰に思えます。
ヒントをいただければ幸いです
ありがとう
許容できる解決策は、すべてのコンボボックス、チェックボックス、およびテキスト入力をビュー モデルの特定のプロパティにバインドし、データを CommandParameter として渡す代わりに、RelayCommand ハンドラーで props 値を使用することです。
次に例を示します。
あなたの 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);
}