Laden...

[erledigt] WPF - Zugriff auf "base" aus static Methode eines eigenen Controls

Erstellt von m.grauber vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.481 Views
M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren
[erledigt] WPF - Zugriff auf "base" aus static Methode eines eigenen Controls

Hallo,

in einem WPF-Control existiert eine


public static readonly DependencyProperty myDP ...

diese ruft beim zuweisen eines Werts folgende Methode auf


public static void OnmyDPChanged(DependencyObject MyObj, DependencyPropertyChangedEventArgs args)

Weiterhin gibt es eine


public void MyMethode

Wie kann man von der static Methode OnmyDPChanged die public Methode MyMethode aufrufen? Ich weiß, das ist ohne Umwege nicht möglich.

Oder kann man eine WPF-DependencyProperty erstellen, die nicht statisch ist?

Danke!

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

6.862 Beiträge seit 2003
vor 13 Jahren

Hallo,

du kriegst doch mit MyObj das Objekt mit für das das Property geändert wurde. Darüber kannst du deine Methode aufrufen.

Und DPs sind nicht statisch. Was du meinst ist die Dependency Property Deklaration über die das Property identifiziert wird.

Baka wa shinanakya naoranai.

Mein XING Profil.

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Hallo Talla,

ja Du hast eine gute Idee und Recht, das Objekt habe ich.

Ich könnte über Reflection die Methode ermitteln:


var y = obj.GetType().GetMethod("MyMethode");

Das klappt auch. Nur wie rufe ich diese auf? Zumal diese Methode hat einen Parameter. Am schönsten wäre natürlich so etwas (geht aber leider nicht) X(:


int i = 1;
y.Execute(i);

Danke!

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

6.862 Beiträge seit 2003
vor 13 Jahren

Wieso einfach wenns auch kompliziert geht. Du musst das objekt doch einfach in den Zieltyp casten und kannst ganz normal die Methode aufrufen?!?

Baka wa shinanakya naoranai.

Mein XING Profil.

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Hallo Talla,

entschuldige! Ich hatte wirklich Tomaten auf den Augen: 8).

Manchmal sieht man den Wald vor Bäumen nicht.

Danke nochmals! Funktioniert nun 👍

Grüße

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Hallo Talla,

zufrüh gefreut. Der Aufruf funktioniert einwandfrei. Jedoch bekommt scheinbar "base" in "MyMethode" eine andere Bedeutung und liefert immer null. 🤔

Rufe ich MyMethode hingegen im Loaded meines Usercontrols auf, funktioniert "base".

Was hat es damit auf sich?

Vielen Dank!

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

6.862 Beiträge seit 2003
vor 13 Jahren

Zeig mal bissle konkreten Code sonst wirds nur rumraten.

Baka wa shinanakya naoranai.

Mein XING Profil.

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Hallo Talla,

greife nun nicht mehr über base zu, sondern übergebe das Objekt gleich mit und arbeite damit weiter.

Nun funktioniert glücklicherweise auch das!

Nochmals Tausend Dank und ein schönes Wochenende! 👍

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]