2011-05-09 42 views

回答

0

订阅的ListView中PreviewMouseButtonDown事件。在该事件处理程序中,当用户按住Ctrl键并标记事件已处理时,您可以捕获该事件处理程序。然后它不会被传递。

安德里亚指出,他们可以通过快捷键取消选择。相反,我认为你应该订阅SelectionChangedEvent。然后,您可以循环移除已删除的项目并将它们标记为已选项:

void list_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     foreach (var item in e.RemovedItems) 
     { 
      myList.SelectedItems.Add(item); 
     } 
    } 
+0

这还不够,也可以使用Ctrl +空格,手写笔或任何其他方式选择项目。 – 2011-05-09 19:40:46

+1

根据您的评论更新 – 2011-05-09 19:58:49

+0

在这种情况下,当您的事件处理程序将被调用时,注册了SelectionChanged事件的其他处理程序可能已经被调用,并且应用程序的逻辑将不得不受到影响。 – 2011-05-09 21:14:43

相关问题