私は実行時にコマンドを使用する単純なボタンを持っていますが、これはうまくいきますが、ボタンをクリックするとテキストパラメータを渡したいと思います。パラメータをICommandに渡す
私は私のXAMLはOKだと思いますが、私は、パラメータを受け取るために私のRelayCommand
クラスを編集する方法がわからないよ:
<Button x:Name="AddCommand" Content="Add"
Command="{Binding AddPhoneCommand}"
CommandParameter="{Binding Text, ElementName=txtAddPhone}" />
public class RelayCommand : ICommand
{
private readonly Action _handler;
private bool _isEnabled;
public RelayCommand(Action handler)
{
_handler = handler;
}
public bool IsEnabled
{
get { return _isEnabled; }
set
{
if (value != _isEnabled)
{
_isEnabled = value;
if (CanExecuteChanged != null)
{
CanExecuteChanged(this, EventArgs.Empty);
}
}
}
}
public bool CanExecute(object parameter)
{
return IsEnabled;
}
public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
{
_handler();
}
}
ありがとう、素晴らしい作品です!私はWPFの新機能ではありませんが、私はコマンドが新しいコンセプトであるようにMVVMを初めて使っています。しかし、私はすでに彼らがユニットテストにどのように役立つか見ることができます。したがって、
@MichaelHarperはい、正確には、1つのオブジェクトパラメータを受け取るデリゲートです。これらの行に沿って複数のアクションタイプを定義していることがわかります。http://msdn.microsoft.com/en-us/library/018hxwa8.aspx – McGarnagle
もう一度、ありがとうございました.D –