【问题标题】:There are need to validation check for event handler argument in WPF?WPF 中的事件处理程序参数是否需要验证检查?
【发布时间】:2020-08-09 07:55:37
【问题描述】:

下面是示例代码。

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 中,项目在列表框中被选中,并且我们已经知道项目类型是什么。但是是否需要检查 AdditionalItems.Count 和类型验证检查?

【问题讨论】:

    标签: c# wpf validation arguments eventhandler


    【解决方案1】:
    1. 理论上,您可以让列表框的另一个子项更改其自己的选择,并且该事件可能会冒泡到列表框,然后列表框会尝试处理它。因此,不太可能,但如果对代码进行审查,则认为是正确的。

    2. 再次,是的。因为选择更改意味着删除/添加,您无法确定发生了什么变化。如果您不关心更改本身,您可以简单地从步骤 1 中获取列表框实例并检查其 SelectedItems,然后使用它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 2013-08-04
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多