2011-03-01 80 views
2

我在WPF努力创造一个ListView组件。列表中的项目基于对MouseLeftDown事件作出反应的另一个用户控件。该列表也对SelectionChanged事件作出反应。禁用拖动以滚动ListView中的WPF

现在,如果我将鼠标放在列表上的任何项目上并移动光标,则我传递的其他项目会对SelectionChanged事件做出反应(这是因为选择正在按List中的Mouse Down事件进行更改视图)。我需要能够禁用此反应时,其向下拖拽到滚动行为,但是当用户选择列表中的项目,以保持它的活性。

任何人都不会有如何可以做到这一点任何想法?

谢谢大家,

RK

回答

0

我相信可以帮助你的是实现自己的你的项目的MouseUp和MouseDown事件中,处理程序上的MouseUp代替的MouseDown选择项目的方法之一。

public class MyListView : ListView 
{ 
    protected override DependencyObject GetContainerForItemOverride() 
    { 
     return new MyListViewItem(); 
    } 
} 

public class MyListViewItem : ListViewItem 
{ 
    protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e) 
    { 
     return; 
    } 

    protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e) 
    { 
     base.OnMouseLeftButtonDown(e); 
    } 
} 
:你可以从这样的样品开始