-1

我有一个 XML 文件包含国家名称,另一个文件包含另一种语言的相同内容。

我想在这里进行绑定,为法语显示法语文件,为另一种语言显示它自己的文件等等..在一个长列表控件中

  1. 如何添加这些文件以及在哪里(资源文件夹?)

  2. 如何命名文件,我应该遵循特定的模式(例如countries.en.xmlcountries.fr.xml

  3. 这个概念就像在 AppResources 中使用键/值一样,它会自动使用正确的文化吗?

对不起,我知道这个问题很基础,但我无法忍受!

4

1 回答 1

1

我会建议两种选择之一。第一种是简单地将 xml 的内容放在 AppResources 文件本身中。这可能是最好的选择。这将允许您像绑定任何其他字符串一样绑定到值

Text="{Binding Path=LocalizedResources.America, Source={StaticResource LocalizedStrings}}"/>

第二种选择是将内容放在xml中并通过代码加载它们。您可以通过提供的 LocalizedStrings 类来做到这一点。您可以公开基于CultureInfo加载一次的国家属性。

private static IDictionary<string, Country> _countries;

public IDictionary<string, Country> Countries
{
    get
    {
        if (_countries == null)
        {
            var culture = System.Globalization.CultureInfo.CurrentCulture;
            var name = culture.Name;
            if (name == "en-us")
            {
                // load
            }
            else
            {
                // load
            }
        }
        return _countries;
    }
}

这将允许您这样绑定

Text="{Binding Path=Countries[America], Source={StaticResource LocalizedStrings}}"/>
于 2013-07-06T05:33:03.523 回答