Ich habe eine ViewModel-Klasse, die auf den integrierten Refresh-Befehl reagieren soll, der von einer Schaltfläche ausgelöst wird, aber ich bin mir nicht sicher, wie das CommandTarget deklariert werden soll.Abrufen von Nicht-UI-Objekten auf WPF-Befehlsbindungen
Kurz gesagt, mein Code ist wie unten
Das Ansichtsmodell Konstruktor und CanExecute und Ausgeführt Event-Handler -
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;
}
Das Markup ist -
<Button Command="Refresh">refresh</Button>
Jetzt habe ich versucht, Einstellung das CommandTarget auf dieser Schaltfläche zu {Binding Source={StaticResource ViewModel}}
, aber ich bekomme eine Laufzeit sagen Cannot convert the value in attribute 'CommandTarget' to object of type 'System.Windows.IInputElement'
.
Ich bin neu in den Befehlen, so ist es durchaus möglich, ich bin hier alle Arten von falsch. Anyhelp würde geschätzt werden.
Dank Kent. das hilft – Stimul8d