0

我有两个包含类别和子类别的列表框。单击一次类别时,我希望弹出子类别。

在此处输入图像描述

即使我的代码适用于鼠标双击事件,我也无法一键完成。我试过鼠标向下,鼠标向上预览鼠标向下等。它们都给出空引用错误

    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;
        }          
    }

有针对这个的解决方法吗?

4

1 回答 1

1

您想知道何时选择了一个类别,因此您应该使用 SelectionChanged 事件。当您使用 MouseDown 时,可能还没有选择任何内容,这就是您得到空异常的原因:

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;
    }          
}
于 2020-10-06T14:07:26.363 回答