Wenn ein Element die Command-Eigenschaft an einen ICommand gebunden hat, können Sie erwarten, dass sich der aktivierte Status auf ICommand.CanExecute stützt. Was ich tun möchte, ist eine Schnittstelle zu erstellen, die von ICommand erbt, die ein "MayExecute" zur Verfügung stellt, um dasselbe für die Sichtbarkeit der Steuerung zu tun. Gibt es einen sauberen Weg, dies zu tun, ohne .NET effektiv neu zu kompilieren?Kann man das ICommand-Verhalten von WPF für Steuerelemente erweitern?
Antwort
Ich würde dies mit einer angehängten Eigenschaft tun. Ich denke, es ist machbar (und auch ziemlich cool).
Die angefügte Eigenschaft hätte eine Methode, um zu überprüfen, ob der Wert Command
auf dem Zielsteuerelement IVanishingCommand
implementiert oder wie Sie es nennen. Wenn dies der Fall ist, wird MayExecuteChanged
abonniert und die Sichtbarkeit des Steuerelements wird entsprechend überschrieben.
Sie würden diese Methode erneut aufrufen, wenn Command
einen neuen Wert erhält (und sich vom alten Command
Ereignis abmelden).
Verwenden Sie die Reflektion, um die Command
Abhängigkeitseigenschaft des Steuerelements zu erhalten; Button
und MenuItem
zum Beispiel erben beide Command
nicht von einer gemeinsamen Basisklasse.
Sie könnten dies auch mit einem Auslöser in einem Stil tun - aber es würde bald schrecklich werden, es in all diesen verschiedenen Stilen zu tun.
- 1. Conditional Laden von WPF-Steuerelemente
- 2. Benutzerdefinierbare WPF-Steuerelemente?
- 3. WPF-Steuerelemente Dll Frage
- 4. Was ist das beste Referenzmaterial für WPF benutzerdefinierte Steuerelemente
- 5. Steuerelementvorlage für vorhandene Steuerelemente in WPF
- 6. Hat WPF gleichwertige Steuerelemente für alle Winforms-Steuerelemente?
- 7. WPF - Steuervererbung für standardisierte Steuerelemente verwenden?
- 8. WPF-Datennavigations-Steuerelemente
- 9. WPF-Composite-Steuerelemente
- 10. WPF, das mehrere Steuerelemente an verschiedene Datenkontexte bindet
- 11. wpf - Animation erweitern?
- 12. SlimDX Ansichtsfenster in WPF-Steuerelemente
- 13. Erweitern der Limesurvey-Steuerelemente in jedem Eintrag
- 14. Übergabe von Eingabeereignissen von HwndHost an zugrunde liegende WPF-Steuerelemente?
- 15. Wo kann ich kostenlose WPF-Steuerelemente und Steuerelementvorlagen finden?
- 16. Wie fügt man Steuerelemente zu einem Dialog hinzu, der das WPF-Thema vordefiniert hat?
- 17. Gibt es ein WPF-Steuerelement, das ich zum Erweitern/Minimieren von Panels (animiert) verwenden kann
- 18. Wie kann man eine Typoskript-Schnittstelle erweitern?
- 19. Unterschiede zwischen WPF Frame und WebBrowser-Steuerelemente
- 20. WPF - Erweitern Fenster nach links
- 21. WPF DataBound Treeview erweitern/reduzieren
- 22. wpf: mehrere Steuerelemente über Dispatcher aktualisieren
- 23. Wie kann ich WPF-Steuerelemente in einem Hintergrundthread erstellen?
- 24. Gibt es eine Standardbenennungskonvention für WPF-UI-Steuerelemente?
- 25. WPF bekommen xaml Steuerelemente zur Laufzeit erstellt
- 26. Kann ich das verzögerte Objekt jQuery.ajax erweitern?
- 27. WPF - Welche integrierten Steuerelemente implementieren ICommandSource?
- 28. mehrere Steuerelemente in einer WPF Rasterzelle
- 29. WPF-Untermenü für das Kontextmenü
- 30. Chart-Steuerelemente für ASP.NET