我正在创建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为null),我收到此错误:
发生了'System.NullReferenceException'类型的异常 IdentificationStation.exe但未在用户代码中处理
如何防止组合框项目被复制?或者我应该做MyCombobox_SelectionChanged
其他的帮助吗?
答案 0 :(得分:1)
你能避免吗
&#39; System.NullReferenceException&#39;
通过测试textView!.delegate = self
上的myCombobox.SelectedItem
是否为空?
MyCombobox_SelectionChanged
我不认为这样做是不好的方式。
答案 1 :(得分:-2)
使用此检查可以停止添加重复项目:
if(!myComboBox.Items.Contains("item"))
{
myComboBox.Items.Add("item");
}