Laden...

WPF DataContext eines UserControls im RowDetail

Erstellt von unconnected vor 10 Jahren Letzter Beitrag vor 10 Jahren 998 Views
unconnected Themenstarter:in
849 Beiträge seit 2006
vor 10 Jahren
WPF DataContext eines UserControls im RowDetail

Hallo,

ich habe vor diesem Problem schon öfter gestanden, und meist habe ich es dann mit irgendwelchen hacks umschifft.

Ich habe hier ein UserControl das an ein RowDetail einer RadGridView (telerik, aber ich denke das verhalten wird im WPF Grid das selbe sein) gebunden ist, und so Automatisch den DataContext der Row (also mein Datenobject) erbt. Dummerweise schleudert es mir aber damit mein mir erdachtes ViewModel (Das ich im Xaml festlege) in Richtung Garbage Collector.

Ich bräuchte im Prinzip eine schöne möglichkeit in der nicht mein gesamter DC ersetzt wird, sondern mein Datenobject in ein Property des DC geimpft wird. Gibt es da eine möglichkeit?

Hoffe ich habe mich einigermaßen verständlich ausgedrückt.

Grüße

unconnected Themenstarter:in
849 Beiträge seit 2006
vor 10 Jahren

Ok,

da es ja scheinbar keinen Vernünftigen ansatz dafür gibt, sollte ich vllt schreiben wie mein derzeitiger Hack aussieht:

Ich erzeuge im Loaded Event des Controls mein ViewModel und impfe den Derzeitigen DataContext (in diesem Moment mein Datenobject) in das ViewModel ein. Danach setze ich den DataContext auf mein ViewModel. Nicht besonders schön, und gibt ne Menge Binding Fehler am Anfang.

I
36 Beiträge seit 2013
vor 10 Jahren

Hi,

magst Du mal den XAML Code beschrieben posten? Mir wird nicht ganz klar was Du wie deklarierst.
Mir klingt Dein ViewModel (das es zerlegt) spontan nach einer Art Converter.

D.h. es wäre vllt.

{Binding MyProperty,Converter={StaticResource converter}}

ein besseres Vorgehen - selbst wenn Du auf die Art nur dein ViewModel übergibst.

++++ Tag ein, Tag aus: HTML-Programmierer beklagt monotone Arbeit ++++
++++ Ein Witz auf seine Kosten: Masochist kann nur gequält lächeln ++++
++++ Nichts dran: Model leugnet Magersucht ++++

unconnected Themenstarter:in
849 Beiträge seit 2006
vor 10 Jahren

Du hast vollkommen recht!

dummerweise wird dieser nicht aufgerufen! Ich habe von IValueConverter abgeleitet, und diesen angegeben. Aber scheinbar geniesst DataContext hier Sonderrechte.

I
36 Beiträge seit 2013
vor 10 Jahren

Hm, sehr merkwürdig.

Eigentlich sollte der DataContext die Rückgabe des Converters enthalten.
Einziges Problem dabei - Änderungen an Objekten unterhalb des Converters werden nicht durch den DataContext registriert - es sei denn, Du machst einen ziemlichen Notification-Aufriss bzw. verknüpfst die Objekte direkt.

Ansonsten müsste es irgendeine Besonderheit von Telerik sein, aber ich glaube nicht, dass hier die Standarts tatsächlich geändert werden.

++++ Tag ein, Tag aus: HTML-Programmierer beklagt monotone Arbeit ++++
++++ Ein Witz auf seine Kosten: Masochist kann nur gequält lächeln ++++
++++ Nichts dran: Model leugnet Magersucht ++++