2009-11-15 19 views

Antwort

23

Versuchen Sie, die Execute Methode aufzurufen.

+4

wow, ich fühle mich ein bisschen albern :) –

+0

Völlig zu einfach! Das kann nicht stimmen! ;-) – senfo

7

dort Unter der Annahme someCommand mit commandArgs:

if (someCommand.CanExecute(commandArgs)) 
{ 
    someCommand.Execute(commandArgs); 
} 
4

Wenn Sie RoutedUICommand ‚s Execute und CanExecute verwenden, müssen Sie in einem gültigen Ziel übergeben, so dass die richtigen CommandBinding gefunden werden kann.

Auch wenn die Handler Ihres Befehls Objekte nicht direkt ändern, sollten Sie die Verwendung von DelegateCommand von Kent Boogaart in Erwägung ziehen. Wenn Sie Delegatbefehle verwenden, wird die Geschäftslogik in das ViewModel verschoben. Dies ist besonders praktisch, wenn Sie Befehle direkt aus Code ausführen müssen und Sie keinen Zugriff auf die Ansicht (oder ein View-Objekt, aus dem Sie sprudeln können) haben zu Ihrem CommandBindings).

0

Denken Sie daran, wenn Sie ein anderes Ereignis von internen Komponenten aufrufen müssen, z. B. einen Klick, sehen Sie sich die Methoden an, die mit Perform beginnen (wie PerformClick einer Schaltfläche).

Weitere Antworten sind in Ordnung, verwenden Sie nur ausführen ...

Verwandte Themen