如何在单击ComboBox时使用c#代码添加ComboBoxItem



我有一个根据语言改变消息的组合框。

但是我没有找到让它工作的方法。

我尝试做的是每当我将语言更改为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();
}
}

最新更新