Bindung an den Ressourcenschlüssel WPF

8

Ich habe ein ResourceDictionary mit einigen Bildern:

%Vor%

Ich habe ein HierarchicalTemplate für Treeview-Elemente wie das folgende erstellt:

%Vor%

Wenn nun das Element angezeigt wird:

  • Textblock zeigt FolderItemImage an
  • Das erste Bild wird angezeigt
  • Zweites Bild wird nicht angezeigt.

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.

    
Spook 13.12.2013, 10:59
quelle

4 Antworten

7

Es kann nicht direkt gemacht werden. Es gibt jedoch einen anderen Weg, der eine angefügte Eigenschaft beinhaltet:

%Vor%

Und dann:

%Vor%     
Spook 13.12.2013, 12:48
quelle
13

Ich schreibe folgende Markup-Erweiterung, um die Bindung an resourceKey im allgemeinen Fall zu ermöglichen

%Vor%

Verwendung

%Vor%     
Gor Rustamyan 21.02.2015 16:04
quelle
4

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

zu wählen

mit Konverter:

in Ressourcen:

%Vor%

dann:

%Vor%

Ihr Konverter könnte wie folgt aussehen:

%Vor%

nicht getestet

    
Adassko 13.12.2013 11:16
quelle
1
%Vor%

Verwendung

& lt; Bildquelle="{local: DynamicResourceBinding ImageResourceKey}" / & gt;

    
Michael Agroskin 07.04.2016 18:47
quelle

Tags und Links