【发布时间】:2016-02-18 08:51:51
【问题描述】:
我使用来自 here 的 Andre 的回答创建了一个多语言 WPF 应用程序。我正在绑定这样的文本
<TextBlock Text="{DynamicResource Create}"/>
并且可以在运行时从英语切换到法语 - 很好!但是,这不适用于 ItemsSource。例如,我有一个应该显示所有可用语言的 ComboBox:
<ComboBox ItemsSource="{Binding AllLanguages, Source={StaticResource Locator}}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{DynamicResource LanguageId}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
这样设置,组合框不显示任何文字。如果我将文本块的文本设置为Text={LanguageId},我会看到 LanguageIds 'eng'、'fr' 等,因此绑定有效。
使用转换器时:
<TextBlock Text="{Binding LanguageId, Converter={StaticResource DynamicResourceConverter}"/>
语言显示为“英语”和“法语”。但是,当我切换语言时,不会再次调用转换器并且不会更新语言名称 - 所以这不是真正的解决方法。
非常感谢您提供有关原因以及如何解决此问题的提示。
【问题讨论】:
-
提供的链接无效。