के साथ ड्रैग-सिलेक्ट करें मेरे पास WPF में ListView
का एक सरल कार्यान्वयन है जो मुझे माउस बटन दबाकर और आइटम पर खींचकर सूची में एकाधिक आइटम चुनने की अनुमति देता है। हालांकि, माउस बटन को दबाकर, जब मैं माउस को ListView
के बाहर ले जाता हूं, तो चयन के साथ कुछ अजीब होता है। आदर्श रूप से, मैं सिर्फ चयन को वही रहना चाहता हूं, लेकिन इसके बजाय यह सभी चयनित वस्तुओं के माध्यम से जल्दी से चक्र चलाता है, केवल चयनित अंतिम आइटम को छोड़ देता है।ListBox
यहां कोड है, कोई विचार है?
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;
}
}