Laden...

ValidationRule ist kein DependencyObject leider!

Erstellt von Omit vor 14 Jahren Letzter Beitrag vor 14 Jahren 951 Views
Omit Themenstarter:in
143 Beiträge seit 2008
vor 14 Jahren
ValidationRule ist kein DependencyObject leider!

Hallo Leute,

ich musste leider feststellen das ValidationRule kein DependencyObject ist.

Was ist dabei das Problem?
Ich habe ein Dynamisches Typ "System" in einer Software integriert.
Ich lege also erst zur Laufzeit fest wie die Datenstruktur aussieht. Um diese Daten zu validieren muss ich natürlich dann auch Validierungsregeln haben, die von der angelegten Datenstruktur abhängen.

Dies wäre ganz einfach wenn ich an eine Validation Rule binden könnte.
Beispiel:


<local:NumberOnlyRule Min="{Binding Model.MinValue}" Max="{Binding Model.MaxValue}" />

Doch dies geht halt nicht, da ValidationRule kein DependencyObject ist.

Ich habe überlegt eine ValidationRule zu schreiben, die von DependencyObject ableitet, doch Binding..::.ValidationRules Property setzt ValidationRule und kein IValidationRule Interface voraus.

Kennt ihr vielleicht noch ein Workaround?

Gruß Timo

Omit Themenstarter:in
143 Beiträge seit 2008
vor 14 Jahren

Hallo Leute,

ich habe zu dem Problem, was auf CodeProject gefunden. Dort beschreibt Josh Smith die Lösung ziemlich gut.

Es wird in ValidationRule ein DependencyObject("FrameworkElement") geschachtelt. Da dieses FrameworkElement nicht im VisualTree ist, muss eine Bridge verwendet werden um den den DataContext in das FE zu bekommen.

Das funktioniert bei mir ziemlich gut. Und das Vorgehen kann man sicher auch gut an anderen stellen einsetzen.

Gruß Timo

p.S. Man benutzt ein FrameworkElement, da ein FrameworkElement einen DataContext hat.