2011-01-07 91 views
4

我遇到了一个巨大的问题,我试过了我所能做的一切,但是我没有找到任何解决方案。 我有一个listBox,有一个DataTemplate。我想使用事件MouseLeftButtonDown和MouseLeftButtonUp来检查选择的项目是否与用户点击的项目相同。MouseLeftButtonDown无法被ListBox识别?

问题是事件MouseLeftButtonUp被识别,但不是事件MouseLeftButtonDown。

我的XAML代码部分:

<ListBox Grid.Row="1" MouseLeftButtonDown="listBox_Faits_MouseLeftButtonDown" 
         MouseLeftButtonUp="listBox_Faits_MouseLeftButtonUp"> 

后面的代码:

private void listBox_Faits_MouseLeftButtonUp(object sender, MouseEventArgs e) 
    { 
     ... 
    } 
    private void listBox_Faits_MouseLeftButtonDown(object sender, MouseEventArgs e) 
    { 
     ... 
    } 

有没有人知道为什么吗?

谢谢你,

问候,

弗洛

回答

11

这是因为MouseLeftButtonDown事件是越来越受列表框项处理。为了处理已经处理的事件,你可以订阅它的代码隐藏,并指定要处理处理的事件,就像这样:

listBox_Faits.AddHandler(MouseLeftButtonDownEvent, new MouseButtonEventHandler(listBox_Faits_MouseLeftButtonDown), true); 
+0

我会建议尝试的PreviewMouseLeftButtonDown事件还可以,但这样一来给你更多控制。 – Tom 2011-01-07 09:43:22