下面是示例代码。
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// case 1
if (sender is ListBox)
{
...
}
// case 2
if (e.AddedItems.Count > 0)
{
if (e.AddedItems[0] is MyItemClass)
{
...
}
}
}
在情况1中,我们已经知道发送方是ListBox。但有必要像上面的示例代码一样进行验证检查吗?
同样,在案例2中,项目是在列表框中选择的,我们已经知道项目类型是什么了。但是有必要检查AddedItems.Count和类型验证检查吗?
-
理论上,如果listbox的另一个子项自己的选择发生了更改,则该事件可能会出现在listbox中,而listbox又会尝试处理它。因此,不太可能,但如果代码经过审查,则认为这是正确的。
-
再说一遍,是的。因为选择更改意味着删除/添加,并且您无法确定更改了什么。如果您不关心更改本身,您可以简单地从步骤1中获取listbox实例,并检查其SelectedItems,然后使用它们。