MVVMツールキットversion1を使用しています。私は2つのテキストボックスtextbox1とtextbox2を持っています。ボタンを押したときにこれらの2つの値をパラメータとして渡す必要があり、結果をtextbox3という名前の3番目のテキストボックスに表示する必要があります。このマルチバインディングを使用してコマンドにパラメータを渡すにはどうすればよいですか?
public ICommand AddCommand
{
get
{
if (addCommand == null)
{
addCommand = new DelegateCommand<object>(CommandExecute,CanCommandExecute);
}
return addCommand;
}
}
private void CommandExecute(object parameter)
{
var values = (object[])parameter;
var a= (int)values[0];
var b= (int)values[1];
Calculater calcu = new Calcu();
int c = calcu.sum(a, b);
}
private bool CanCommandExecute(object parameter)
{
return true;
}
のような類似した
私のVMコードcommandExecute方法は、ユーザーがボタンをクリックしたときに呼び出されますが、私のパラメータ引数には、任意の値を持っていません。どのように私はパラメータとしてユーザーの値を渡すことができますか?結果をtexbox3に返しますか?
私は同じように従っています。 Tupleをサポートしていない.net framework 3.5を使用しています。だから私はObjectそれ自身としてそれを返しました。コードがCommandExecuteメソッドに達すると、パラメーター値はnullになります。パラメータがテキストボックスに割り当てられた値を取得する方法あなたのコンバータの – niknowj
は次のものを使用します:return values.ToArray();これは役に立ちます。あなたは "新しい"配列を作成しなければなりません。新しいオブジェクト{values [0]、values [1]}を返します。うまくいくはずです。 – blindmeis