我有一个根据语言改变消息的组合框。
但是我没有找到让它工作的方法。
我尝试做的是每当我将语言更改为ComboBox时更改消息的语言
XAML代码:
<ComboBox Name="TestC" Initialized="MyComb"/>
c#代码
var SelectLang = "";
switch (LangSelect.SelectedIndex)
{
case 0:
SelectLang = "en-US";
break;
case 1:
SelectLang = "es-ES";
break;
default:
break;
}
for (int i = 1; i < 13; i++) {
string month = new CultureInfo(SelectLang).DateTimeFormat.GetMonthName(i).ToString();
TestC.Items.Add(month);
}
目前我使用的是初始化,但我只能在启动wpf应用程序时创建组合框,这使得语言不适用,为了工作,我必须保存语言并再次打开它。
如何通过单击ComboBox框来创建ComboBoxItem ?
必须使用SelectionChanged
事件刷新每个区域性日期的月份的组合框。
使用以下代码:
<ComboBox x:Name="LangSelect" Width="200" Height="30" SelectionChanged="LangSelect_SelectionChanged">
<ComboBoxItem Content="Please Select Culture" Selector.IsSelected="True"></ComboBoxItem>
<ComboBoxItem Content="en-US"></ComboBoxItem>
<ComboBoxItem Content="es-ES"></ComboBoxItem>
</ComboBox>
<ComboBox Name="TestC" Width="200" Height="30"/>
和
private void LangSelect_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (TestC != null && LangSelect.SelectedIndex > 0)
{
TestC.Items.Clear();
ComboBoxItem item = (ComboBoxItem)LangSelect.SelectedItem;
for (int i = 1; i < 13; i++)
{
string month = new CultureInfo(item.Content.ToString()).DateTimeFormat.GetMonthName(i).ToString();
TestC.Items.Add(month);
}
}
else
{
if (TestC != null)
TestC.Items.Clear();
}
}