使用绑定值作为使用MarkupExtension进行翻译的键

时间:2014-03-28 09:36:17

标签: c# .net wpf

我正在使用我自己的基于this tutorial扩展功能的自定义本地化库。

非常漂亮,但现在我想在ItemControl内使用Template用于所有可用语言,并根据项目的属性获取本地化值。

视图模型:

public IEnumerable<CultureInfo> AvailableLanguages
{
    get
    {
        return TranslationManager.Instance.AvailableLanguages;
    }
}

查看:

<ItemsControl ItemsSource="{Binding AvailableLanguages}">
    <ItemsControl.ItemTemplate>
        <DataTemplate DataType="{x:Type glo:CultureInfo}">
            <StackPanel Orientation="Horizontal">
                <Image Width="32" Height="24"
                       Source="{loc:Translate {Binding TwoLetterISOLanguageName}}"/>
                <TextBlock Text="{Binding DisplayName}"/>
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

显然使用Binding作为参数将无效,因为MarkupExtensions有一些限制(您可以在上面的链接中看到基本实现)。

有没有办法解决这个问题?我唯一的选择是在后面的代码中完成这些工作吗?

0 个答案:

没有答案