Ich brauche eine Art von Datenvalidierung in einer WPF-Anwendung zu tun, ich entwickleWPF Validierung innerhalb UI Virtualized ListBox
Soweit ich weiß, wenn Sie ValidatesOnDataErrors=True
auf die Bindung hinzufügen, jedes Mal wenn die Bindung gelöst ist (es kann sein, jedes Mal, wenn der Wert sich ändert, kann es sein, wenn Fokus verloren ist), Binding-Engine überprüft die Bindungsquelle, durch IDataErrorInfo
, Zugriff auf die Schnittstelle, findet heraus, ob es einen Fehler gibt oder nicht.
Es klingt gut, mit nur einem Vorbehalt. Damit Daten validiert werden können, müssen sie gerendert werden. Wenn Sie eine ObservableCollection
dieser Entität haben, die an eine ListBox
mit VirtualizingStackPanel.IsVirtualizing=True
gebunden ist, werden nur gerenderte Elemente validiert. Da die meisten Elemente außerhalb des Ansichtsfensters liegen, werden sie nicht gerendert.
Wie kann ich jedes Element zur Validierung zwingen? Das Entfernen der UI-Virtualisierung ist keine Option.