La liaison d'un datacontext de la chaîne de propriété à un StaticResource clé
J'ai une Liste de valeurs avec un ResourceKey et une Légende, ces valeurs sont des chaînes de caractères. La Ressource est le nom d'une ressource définie dans un dictionnaire de ressources. Chacun de ces ResourceKey les Icônes sont la Toile.
<Data ResourceKey="IconCalendar" Caption="Calendar"/>
<Data ResourceKey="IconEmail" Caption="Email"/>
Je puis avoir une vue de liste qui a un datatemplate avec un bouton et une légende de texte en dessous du bouton. Ce que je veux faire, c'est afficher Ressource ressource statique que le contenu du bouton.
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Button Content="{Binding ResourceKey}" Template="{StaticResource RoundButtonControlTemplate}"/>
<TextBlock Grid.Row="1" Margin="0,10,0,0" Text="{Binding Caption}" HorizontalAlignment="Center" FontSize="20" FontWeight="Bold" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
Je pense que j'ai tout essayé permutation avec la liaison staticresource, etc.
Je suis ouvert à d'autres options, je sais qu'il peut être plus facile de disposer d'une image et définissez la propriété source.
Grâce
OriginalL'auteur dvkwong | 2009-03-29
Vous devez vous connecter pour publier un commentaire.
Après avoir un peu je pense que de se retrouver à l'aide d'un
ValueConvertor
comme suit:et la liaison sur le bouton devient
Je ne sais pas pourquoi, mais j'ai dû utiliser App.Actuel.Ressources par opposition à l'Application.Actuel.Ressources
OriginalL'auteur dvkwong
Ici, j'ai eu une version améliorée de @dvkwong 's réponse (avec @Anatoliy Nikolaev 's edition):
utilisation:
Le changement principal est ici:
Le convertisseur est maintenant un
System.Windows.Markup.MarkupExtension
de sorte qu'il peut être utilisé directement sans être déclaré en tant que ressource.Le convertisseur est sensible au contexte, de sorte qu'il ne sera pas seulement regarder dans votre Application de ressources, mais aussi les ressources locales (fenêtre en cours, usercontrol ou de page, etc.).
OriginalL'auteur hillin