Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
ValidationRule ist kein DependencyObject leider!
Omit
myCSharp.de - Member

Avatar #avatar-2748.jpg


Dabei seit:
Beiträge: 146

Themenstarter:

ValidationRule ist kein DependencyObject leider!

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Omit
myCSharp.de - Member

Avatar #avatar-2748.jpg


Dabei seit:
Beiträge: 146

Themenstarter:

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Omit am .
private Nachricht | Beiträge des Benutzers