Programmgesteuert ändern Gültigkeitsregel in WPF-TextBox
Ich habe eine text-input-Bereich wie folgt definiert:
<TextBox>
<TextBox.Text>
<Binding Path="MyProperty">
<Binding.ValidationRules>
<valid:MyValidator/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
Mein problem ist, dass, abhängig von einer anderen Einstellung, was soll hier eingefügt variiert. Und damit die Validierung Verhalten der input-Daten ändern sollte.
Wie kann ich in der code-behind ändern Sie die aktive Validierung in der Regel für eine bestimmte textbox?
- mit einem Konverter?
- Ich dachte, Konverter war mehr darauf ausgerichtet, ändern (konvertieren) die eingehenden Daten? Ich möchte, um vollständig ersetzen die aktive Gültigkeitsregel, ohne den input der Nutzer gab.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden BindingOperations.GetBinding() auf, um das Binding-Objekt für die TextBox.Text. Dann manipulieren die Bindung ValidationRules-Auflistung, wie Sie sehen, passen.
Den meisten hacky Lösung, die mir einfällt, ist zu definieren, eine textbox für jede der Validierungsregeln, die in der Lage sein sollten festgelegt werden. Binden Sie ein Textfeld auf jeder der Validierungs-Regeln. Dann, abhängig von der externen Einstellung/Zustand ausblenden/verstecken alle Textfelder, außer mit der mit der Validierung Regel, die angewendet werden soll.