Ich habe ein ResourceDictionary mit einigen Bildern:
%Vor% Ich habe ein HierarchicalTemplate
für Treeview-Elemente wie das folgende erstellt:
Wenn nun das Element angezeigt wird:
FolderItemImage
an
Die ganze Idee ist es, Bilder von Gegenständen auf solche zu setzen, die in Ressourcen gespeichert sind, aber die oben dargestellte Technik wird leider nicht funktionieren, und jetzt weiß ich, warum:
%Vor%Ergebnis:
Eine nicht behandelte Ausnahme vom Typ 'System.Windows.Markup.XamlParseException' ist in PresentationFramework.dll aufgetreten
Zusätzliche Information: Eine 'Bindung' kann nicht für die Eigenschaft 'ResourceKey' vom Typ 'DynamicResourceExtension' festgelegt werden. Eine 'Bindung' kann nur für eine DependencyProperty eines DependencyObject festgelegt werden.
Also muss ich meine Frage neu formulieren: Wie kann ich einige Daten (ein Ressourcenschlüssel, vielleicht?), die im Modell gespeichert sind, in eine dynamische Ressource umwandeln? Es hat als dynamische Ressource, da ich mir sicher bin, dass es sich während der Laufzeit ändern kann.
Ich schreibe folgende Markup-Erweiterung, um die Bindung an resourceKey im allgemeinen Fall zu ermöglichen
%Vor%Verwendung
%Vor%Ich glaube nicht, dass es möglich ist, den dynamischen Zeichenfolgenwert als Schlüssel für ein Wörterbuch auf eine Art und Weise zu verwenden, wie Sie dies versuchen.
Sie müssen entweder ein Converter
erstellen, das von string
in ImageSource
konvertiert, oder DataTrigger
, um Source
abhängig von ImageResourceKey
mit Konverter:
in Ressourcen:
%Vor%dann:
%Vor%Ihr Konverter könnte wie folgt aussehen:
%Vor%nicht getestet
Verwendung
& lt; Bildquelle="{local: DynamicResourceBinding ImageResourceKey}" / & gt;
Tags und Links wpf c# binding dynamicresource