事件参数 - 它们是否应反映事件发生时的状态快照或实时数据?

时间:2010-07-09 16:00:34

标签: c# wpf events override messagebox

传递给OnPreviewMouseLeftButtonDown的覆盖的args对象似乎描述了当前(实时)鼠标按钮状态,而不是事件发生时当前状态的快照。

这是正确的行为吗?事件参数是否应该反映事件发生时的事件数据(快照),而不是自动更新以反映实时数据?

谢谢你,


代码示例

protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e)
{
   // before MessageBox display, e.ButtonState = Pressed
   MessageBox.Show("OnPreviewMouseLeftButtonDown");

   // now, e.ButtonState = Released 
   base.OnPreviewMouseLeftButtonDown(e);
}

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

EventArgs类的任何实例成员都不保证是线程安全的。所以我想如果参数的内部状态改变,我们不能抱怨;)