5
我在WPF中有一個簡單的實現ListView
,允許我通過按住鼠標按鈕並拖動項目來選擇列表中的多個項目。但是,在按住鼠標按鈕的同時,將鼠標移動到ListView
之外時,選擇會發生一些奇怪的情況。理想情況下,我只想讓選擇保持不變,但是它會快速循環所有選定的項目,只留下最後選擇的項目。用列表框拖動選擇
這是代碼,有什麼想法?
public class MultiSelectListView : ListView
{
private bool m_isSelectionActive;
public bool IsSelectionActive
{
get { return m_isSelectionActive; }
}
protected override DependencyObject GetContainerForItemOverride()
{
return new MultiSelectListViewItem(this);
}
protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e)
{
m_isSelectionActive = true;
}
protected override void OnPreviewMouseLeftButtonUp(MouseButtonEventArgs e)
{
m_isSelectionActive = false;
}
}
public class MultiSelectListViewItem : ListViewItem
{
private readonly MultiSelectListView m_parent;
public MultiSelectListViewItem(MultiSelectListView parent)
{
m_parent = parent;
}
protected override void OnMouseEnter(System.Windows.Input.MouseEventArgs e)
{
if (m_parent.IsSelectionActive)
IsSelected = true;
}
}