ボタンから起動された組み込みの更新コマンドに応答したいViewModelクラスがありますが、CommandTargetの宣言方法がわかりません。WPFコマンドバインディングに応答するUI以外のオブジェクトの取得
public ViewModel()
{
CommandBinding binding = new CommandBinding(NavigationCommands.Refresh, CommandHandler);
binding.CanExecute += new CanExecuteRoutedEventHandler(binding_CanExecute);
binding.Executed += new ExecutedRoutedEventHandler(binding_Executed);
CommandManager.RegisterClassCommandBinding(typeof(ViewModel), binding);
}
void binding_Executed(object sender, ExecutedRoutedEventArgs e)
{
Debug.Print("Refreshing...");
}
void binding_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
マークアップがある - - 今
<Button Command="Refresh">refresh</Button>
、私が試した設定
簡単に言うと、私のコードは
のViewModelコンストラクタとCanExecute以下のようにして実行されるイベントハンドラですこのボタンのCommandTargetは{Binding Source={StaticResource ViewModel}}
ですが、実行時間はCannot convert the value in attribute 'CommandTarget' to object of type 'System.Windows.IInputElement'
です。
私はコマンドに慣れていないので、私はすべての種類が間違っている可能性があります。 Anyhelpに感謝します。
ありがとうございました。それは助ける – Stimul8d