WPF/C#: 如何在列表框中一键选择?
WPF/C#: How to make a selection from a listbox with one click?
我有两个包含类别和子类别的列表框。我希望在单击某个类别时弹出子类别。
即使我的代码适用于鼠标双击事件,但我无法单击一下。我试过鼠标按下,鼠标向上预览鼠标按下等。它们都给出了空引用错误
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 时,可能还没有选择任何东西,这就是您得到空异常的原因:
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;
}
}
我有两个包含类别和子类别的列表框。我希望在单击某个类别时弹出子类别。
即使我的代码适用于鼠标双击事件,但我无法单击一下。我试过鼠标按下,鼠标向上预览鼠标按下等。它们都给出了空引用错误
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 时,可能还没有选择任何东西,这就是您得到空异常的原因:
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;
}
}