Ich möchte ein Steuerelement wie eine TextBox ausblenden, wenn es eine Bindung für eine Eigenschaft wie die Texteigenschaft hat, die ungültig ist (hat einen BindingExpression-Pfadfehler ausgelöst). Dies unterscheidet sich von der einfachen Überprüfung, ob der Wert der Bindung in einem Trigger null ist. Null kann tatsächlich ein vollkommen akzeptabler Wert sein, und das Steuerelement sollte immer noch angezeigt werden. Grundsätzlich habe ich eine DataTemplate, die ich mit mehreren verschiedenen Arten von Objekten aus meiner VM wiederverwenden möchte, von denen einige bestimmte Eigenschaften gemeinsam haben können, und einige von ihnen können einzigartige Eigenschaften haben. Wenn eine bestimmte Eigenschaft nicht in dem Objekt vorhanden ist, das derzeit die Bindungsquelle der DataTemplate ist, wird die DataTemplate über eine Art zusätzlichen Trigger oder eine zusätzliche Bindung verfügen, die das bestimmte Steuerelement ausblenden, das an die Eigenschaft gebunden ist, die nicht vorhanden ist.Ausblenden eines Steuerelements, wenn es eine ungültige Bindung hat
Antwort
Sie könnten mit der Validation.ErrorTemplate herumspielen, um das Steuerelement zu stylen, wenn ein Überprüfungsfehler auftritt.
Dann einfach die ValidatesOnDataError = True
in der Bindung festgelegt und gehen Sie weg
Aber was ist, wenn es einen anderen legitimen Validierungsfehler gibt? Wenn beispielsweise ein TextBox.Text an eine Ganzzahl gebunden ist und der Benutzer einen Buchstaben eingibt und einen Überprüfungsfehler (die Ganzzahl kann nicht analysiert werden) ausgibt, verschwindet die TextBox. –
Auch das Setzen von ValidatesOnDataError = True für die Bindung scheint den BindingExpression-Pfadfehler nicht zu fangen –
Hmm ja, ich habe offensichtlich nicht darüber nachgedacht. Phils Kommentar scheint eine gute Lösung zu sein. FallBackValue und ein Sichtbarkeitskonverter. Das würde völlig funktionieren. –
- 1. Das Ändern eines TextBox-Steuerelements für das Leave-Ereignis verhindert das Ausblenden des Steuerelements.
- 2. MVVM - Ausblenden eines Steuerelements, wenn die gebundene Eigenschaft nicht vorhanden ist
- 3. Gibt es ein WinForms-Steuerelement zum Ein- und Ausblenden eines anderen WinForms-Steuerelements?
- 4. Aktualisieren eines dynamischen Steuerelements
- 5. Binden eines GridView-Steuerelements an eine DataTable
- 6. Datenbindung eines benutzerdefinierten Steuerelements
- 7. knockout js 'mit' Bindung, ausblenden, wenn Array leer ist
- 8. Was bedeutet es in Haskell, wenn eine Bindung "eine bestehende Bindung überschattet"?
- 9. Eine ungültige Anmeldung protokollieren
- 10. Verfolgen von Ereignissen eines Steuerelements
- 11. Erzwingen eines Repaint eines WPF-Steuerelements
- 12. Ist es möglich, die Hintergrundfarbe eines CMFCEditBrowseCtrl-Steuerelements zu ändern?
- 13. Gibt es eine einfache Möglichkeit, das Verhalten eines Java/Swing-Steuerelements zu ändern, wenn es den Fokus erhält?
- 14. Ungültige Cast-Ausnahme beim Versuch, eine Eigenschaft eines Benutzersteuerelements in einer Bindung zu konvertieren
- 15. Erstellen eines Vorlagen-ASP.NET-Steuerelements
- 16. Anzeigen eines ModalPopupExtender-Steuerelements, wenn ein UpdateProgress-Steuerelement aktiviert ist
- 17. Wie Sie eine DependencyProperty eines Steuerelements in einem UserControl verschachteln?
- 18. Wie Binding Converter auf die Eigenschaft eines Steuerelements auf andere Eigenschaften des Steuerelements zugreifen kann
- 19. Ajax-Anfrage hat ungültige Zeichen
- 20. Gibt es eine Möglichkeit, den aktuellen Knoten eines SiteMapPath-Steuerelements programmgesteuert festzulegen?
- 21. Steuern des Renderings eines benutzerdefinierten Steuerelements
- 22. Erstellen eines benutzerdefinierten TabPage-Steuerelements in C#
- 23. Gibt es eine Möglichkeit, den Besitzer-Thread eines Steuerelements zu finden?
- 24. Bindung des untergeordneten Steuerelements in der Baumansicht Element in WPF
- 25. Navigieren eines Steuerelements (ListBox) time-lag
- 26. Bindung an eine Eigenschaft eines Objekts
- 27. Ausblenden eines div standardmäßig
- 28. Laden eines Steuerelements Von einer Masterseite
- 29. Aktualisieren eines Steuerelements außerhalb des UpdatePanels
- 30. Wie kann ich CollapsingToolbar ausblenden, wenn Scroll nicht Inhalt hat?
ich hier effektiv die gleiche Frage nur beantwortet http://stackoverflow.com/questions/9893825/mvvm-hiding-a-control-when-bound -Eigenschaft-ist-nicht-anwesend – Phil
Brilliant! Danke @Phil, genau das, was ich gesucht habe –