【发布时间】:2017-09-02 18:08:41
【问题描述】:
我正在创建 WPF 应用程序,在我的设置面板中,我有几个标签、文本框、组合框和两个按钮(保存)和(取消)。
Xaml
<ComboBox x:Name="myCombobox" Grid.Column="1" Margin="18,372,4,0" VerticalAlignment="Top" Height="26" SelectionChanged="MyCombobox_SelectionChanged" />
我已经在我的组合框中添加了项目:
myCombobox.Items.Add("Test1");
myCombobox.Items.Add("Test2");
myCombobox.Items.Add("Test3");
foreach (var item in myCombobox.Items)
if (item.Equals(Properties.Settings.Default.MyCombobox))
myCombobox.SelectedItem = item;
并添加了 SelectionChanged 事件。看起来是这样的:
private void MyCombobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (myCombobox.SelectedItem.ToString().Equals("Test1"))
{
testGrid.Visibility = Visibility.Visible;
}
else if (myCombobox.SelectedItem.ToString().Equals("Test2") || myCombobox.SelectedItem.ToString().Equals("Test3"))
{
testGrid.Visibility = Visibility.Hidden;
}
}
当我单击取消按钮并重新启动我的设置面板时,我的组合框的项目被复制。 (两次相同的值)。
我试图通过添加取消按钮单击事件来防止这种情况
myCombobox.Items.Clear();
但此时存在另一个问题(myCombobox.SelectedItem 为空),我收到此错误:
“System.NullReferenceException”类型的异常发生在 IdentificationStation.exe,但未在用户代码中处理
如何防止组合框项目重复?或者我应该这样做MyCombobox_SelectionChangedotherwice,有什么帮助吗?
【问题讨论】:
-
myCombobox.Items.Clear();将此添加到 onchange 事件中。
-
如何填充组合?应该添加与问题相关的代码。
-
该应用程序肯定会在例程中两次调用“myComboBox.Items.Add(...)”。这在哪里/如何称呼?你能显示有这个调用的方法吗?
-
请添加定义组合框的xaml。