gpt4 book ai didi

c# - 组合框中的 WPF CultureInfo,DisplayName 作为 DisplayMemberPath 在更改 SelectedUICulture 时不起作用

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

我写了一个小实用程序,用户可以在其中更改语言。我将可用语言(如 CultureInfo )放在 List<CultureInfo> 中, 将其绑定(bind)到组合框并使用 DisplayMemberPath指向 CultureInfo.DisplayName .

private List<CultureInfo> languageOptions = new List<CultureInfo>();

public List<CultureInfo> LanguageOptions
{
get { return languageOptions; }
set
{
languageOptions = value;
OnPropertyChanged("LanguageOptions");
}
}

在我的构造函数中;

foreach (/* my available languages */)
{
cultures.Add(new CultureInfo(/* language ie.e en-US, de-DE etc */));
}

我使用以下 XAML 来显示所选语言:

<ComboBox  x:Uid="ComboBox_3" 
ItemsSource="{Binding LanguageOptions}"
DisplayMemberPath="DisplayName"
SelectedItem="{Binding Source={x:Static properties:Settings.Default},
Path=SelectedCulture}"/>

当 CurrentCulture 和 CurrentUICulture 设置为 en-US 时,这非常有效。

en-US example image

当用户选择一种新语言并重新启动实用程序时,我设置了 CurrentCultureCurrentUICulture对于 App.xaml.cs 中的应用程序,如下所示:

if ((TTSAutomate.Properties.Settings.Default.SelectedCulture)!=null)
{
CultureInfo ci = TTSAutomate.Properties.Settings.Default.SelectedCulture;
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
}

这非常有效,因为该实用程序以正确的语言显示。但是,显示所选语言的组合框现在只显示 Name CultureInfo 的,而不是 DisplayName .

sk-SK example image

任何人都可以就发生的事情提出建议吗?我试过了 NativeName相反,没有任何改进

最佳答案

我重新生成了几次附属程序集(没有做任何更改),然后绑定(bind)“突然”开始工作了:(

关于c# - 组合框中的 WPF CultureInfo,DisplayName 作为 DisplayMemberPath 在更改 SelectedUICulture 时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39359815/

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