WPF / C#:如何一键从列表框中进行选择?

问题描述

我有两个带有类别和子类别的列表框。单击类别后,我希望弹出子类别。

enter image description here

即使我的代码可以使用鼠标双击事件,也无法一键解决。我尝试将鼠标按下,将鼠标按下预览将鼠标按下等。它们都给出了空引用错误

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