Binden einer DataContext-String-Eigenschaft an einen StaticResource-Schlüssel

8

Ich habe eine List-Werte mit einem ResourceKey und einer Caption, diese Werte sind beide Zeichenfolgen. Die Ressource ist der Name einer tatsächlichen Ressource, die in einem Ressourcenwörterbuch definiert ist. Jedes dieser ResourceKey-Symbole ist Canvas.

%Vor%

Ich habe dann eine Listenansicht, die ein Datamaplate mit einer Schaltfläche und einer Textbeschriftung unterhalb der Schaltfläche enthält. Was ich tun möchte, ist Ressource statische Ressource als Inhalt für die Schaltfläche anzuzeigen.

%Vor%

Ich glaube, ich habe jede Permutation mit einer verbindlichen statischen Ressource usw. versucht.

Ich bin offen für Alternativen, ich weiß, dass es vielleicht einfacher ist, ein Bild zu haben und die Quelleigenschaft einzustellen.

Danke

    
dvkwong 29.03.2009, 23:31
quelle

2 Antworten

10

Nachdem ich ein wenig nachgedacht habe, benutze ich ein ValueConvertor wie folgt:

%Vor%

und die Bindung auf der Schaltfläche wird

%Vor%     
dvkwong 29.03.2009, 23:58
quelle
2

Hier habe ich eine verbesserte Version von @dvkwongs Antwort (zusammen mit @Anatoliy Nikolaevs Bearbeitung):

%Vor%

Verwendung:

%Vor%

Die primäre Änderung ist hier:

  1. Der Konverter ist jetzt ein System.Windows.Markup.MarkupExtension , so dass er direkt verwendet werden kann, ohne als Ressource deklariert zu werden.

  2. Der Konverter ist kontextsensitiv und sucht nicht nur in den Ressourcen Ihrer App nach, sondern auch nach lokalen Ressourcen (aktuelles Fenster, Benutzersteuerung oder Seite usw.).

hillin 15.04.2016 07:44
quelle