问题描述
我有两个带有类别和子类别的列表框。单击类别后,我希望弹出子类别。
即使我的代码可以使用鼠标双击事件,也无法一键解决。我尝试将鼠标按下,将鼠标按下预览将鼠标按下等。它们都给出了空引用错误
private void DataCategoryListBox_PMouseLDown(object sender,MouseButtonEventArgs e)
{
string selectedCat = DataCategoryListBox.SelectedItem.ToString();
MessageBox.Show(selectedCat);
if (selectedCat == "Geological")
{
string[] GeoCats = { "soil","hydrogeology" };
SubCatListBox.ItemsSource = GeoCats;
}
}
对此有解决方案吗?
解决方法
您想知道何时选择类别,因此应该使用SelectionChanged事件。当您使用MouseDown时,可能还没有选择任何东西,这就是为什么您会得到null异常的原因:
private void DataCategoryListBox_SelectionChanged(object sender,SelectionChangedEventArgs e)
{
string selectedCat = DataCategoryListBox.SelectedItem.ToString();
MessageBox.Show(selectedCat);
if (selectedCat == "Geological")
{
string[] GeoCats = { "soil","hydrogeology" };
SubCatListBox.ItemsSource = GeoCats;
}
}