gpt4 book ai didi

c# - 将列表值中的字符串绑定(bind)为 StaticResource

转载 作者:太空宇宙 更新时间:2023-11-03 21:17:17 25 4
gpt4 key购买 nike

当我尝试从代码隐藏列表中绑定(bind)静态资源的名称时,我遇到了一个大问题。

public IDictionary<int, Menuitem> Categories = new Dictionary<int, Menuitem>();
Categories.Add(1, new Menuitem() { Name = "Menu1", Image = "Menu1Resource" });
list.ItemsSource = Categories;

在 xaml 中我有

<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/Icons.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>

我想这样绑定(bind)

<ListView Padding="20 0" Grid.Row="1" x:Name="list" >
<ListView.ItemTemplate>
<DataTemplate>
<Border Background="#53921D" Margin="0 0 0 10" Padding="15">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="9*"/>
</Grid.ColumnDefinitions>
<Image Source="{StaticResource ResourceKey={Binding Value.Image}}"/>
<TextBlock Grid.Column="1" Foreground="White" Text="{Binding Value.Name}" HorizontalAlignment="Center" FontSize="30" VerticalAlignment="Center"/>
</Grid>
</Border>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
</ListView>

绑定(bind)到 TextBlock 效果很好,但绑定(bind)到 Image Source 则不行。当我像这样绑定(bind)到图像源时

Source="{StaticResource Menu1Resource}"

它也可以工作,但我想从列表中自动绑定(bind)。谁能给我任何提示来解决这个问题?;)

最佳答案

在这一行中:

Categories.Add(1, new Menuitem() { Name = "Menu1", Image = "Menu1Resource" });

您可能将 ResourceKey Menu1Resource 设置为 Image,以为您将获得一个 Image 对象。

这样做:

Categories.Add(1, new Menuitem() { Name = "Menu1", Image = _getImgFromResKey("Menu1Resource") });

Image _getImgFromResKey(string key)
{
//access resource from res dictionary
}

最后是 <Image Source="{Binding Value.Image}"/>

How to get resource from Res Dictionary

关于c# - 将列表值中的字符串绑定(bind)为 StaticResource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33201754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com