dependencyobject

___ tag123net ___ Das .NET-Framework ist ein Software-Framework, das hauptsächlich für das Microsoft Windows-Betriebssystem entwickelt wurde. Es enthält eine Implementierung der Basisklassenbibliothek, Common Language Runtime (allgemein als CLR bezeichnet), Common Type System (allgemein als CTS bezeichnet) und Dynamic Language Runtime. Es unterstützt viele Programmiersprachen, einschließlich C #, VB.NET, F # und C ++ / CLI. NICHT für Fragen zu .NET Core verwenden. ___ qstnhdr ___ Anpassen der DependencyObject-Vererbungsstruktur ___ tag123wpf ___ Windows Presentation Foundation oder WPF ist ein Subsystem zum Rendern von Benutzeroberflächen in Windows-basierten Anwendungen. ___ answer614755 ___

Ich nehme an, dass Sie nach der Weitergabe von Werten an Kinder fragen, die Werte nicht selbst überschreiben.

Das Konzept eines WPF-Elements mit einem Kind wird von %code% eingeführt, soweit ich weiß. Dies kommt viel weiter unten in der Hierarchie zum Einsatz, als Sie wollen. Ich würde also annehmen, dass wenn Sie einfach von %code% ableiten würden, dass sich dieses Verhalten nicht manifestieren würde.

Insbesondere muss ein Kind wissen, ob es seinen Eltern fragen soll, wenn es für eine bestimmte Eigenschaft keinen Wert hat.

Interessante Frage. Ich würde gerne die vollständige Antwort auch wissen.

    
___ tag123dependencyproperties ___ Eine Eigenschaft in WPF und Silverlight, die die Datenbindung unterstützt, einschließlich Formatvorlagen, Vererbung, Animation und Standardwerte. Sie können angefügte Eigenschaften für DependencyObject festlegen. ___ answer618034 ___

Nach viel Recherche und Durchwursteln des Quellcodes für %code% , hier die kurze Antwort:

Das %code% (die Eigenschaft, die das logische Elternteil einer Instanz enthüllt) ist (wie 90% der nützlichen Implementierung von %code% ) als intern markiert und somit vor allem Code außerhalb von WindowsBase.dll verborgen.

Es ist möglich, reflection zu verwenden, um das %code% -Feld zu setzen, und diese versteckten Methoden aufzurufen, um %code% zu setzen, aber am Ende des Tages ist es keine saubere Lösung.

Nachdem ich den %code% Quellcode durchforstet habe, muss ich sagen, dass ich nicht beeindruckt bin. %code% könnte und sollte eine sehr saubere, allgegenwärtige, wiederverwendbare Klasse sein. Stattdessen ist es strukturell und behaviorisch an seine Erben gebunden und enthält sogar spezifische Konstanten, Felder, Methoden und Workarounds, um Freezable bei der Koexistenz mit den anderen Unterklassen zu unterstützen, was nicht nur weit vom guten OO-Design entfernt ist, sondern auch macht auch eine ansonsten hervorragende Klasse außerhalb des WPF-Frameworks völlig unbrauchbar.

    
___ qstntxt ___

Ich habe Mühe, genügend Informationen über die Eigenschaft Vererbungsbaum (oder Inheritance Context) zu finden, die von %code% und %code% verwendet wird.

Ich möchte die Wertvererbungsfunktion von %code% außerhalb einer typischen WPF-Seite verwenden, so dass Objekt A das logische übergeordnete Objekt B ist und daher ein Wert, der einer Eigenschaft in Objekt A zugewiesen ist, automatisch an Object propagiert B, sofern es nicht lokal festgelegt wurde (ein bisschen wie die Eigenschaft %code% in WPF).

Wenn Objekt A und Objekt B von %code% entfernt werden und nicht untergeordneten Elemente von %code% sind (mit anderen Worten, Objekt A ist sein eigenes Stamm ), wie stellen Sie dann den logischen Baum her, damit %code% versteht, dass B ein Kind von A ist?

Der Hillberg Freezable Trick sowie Josh Smiths Trickkiste ist nicht ganz das, wonach ich suche. Ich möchte keine Eigenschaften aus einer vorhandenen Elementstruktur abrufen ... Ich möchte meinen eigenen, nicht sichtbaren Elementbaum erstellen ... d. H., Sie haben die Kontrolle über den Erbkontext.

Weiß jemand, wo sich dieses Wissen versteckt?

    
___ tag123dependenceobject ___ Die DependencyObject-Klasse aktiviert Windows Presentation Foundation (WPF) -Eigenschaftssystemdienste für viele abgeleitete Klassen. ___
2
Antworten

Anpassen der DependencyObject-Vererbungsstruktur

Ich habe Mühe, genügend Informationen über die Eigenschaft Vererbungsbaum (oder Inheritance Context) zu finden, die von DependencyObject und DependencyProperty verwendet wird. Ich möchte die Wertvererbungsfunktion von DependencyPropert...
05.03.2009, 12:46