2

ListView コンポーネントを作成するために WPF で作業しています。リスト内の項目は、MouseLeftDown イベントに反応する別のユーザー コントロールに基づいています。リストは、SelectionChanged イベントにも反応します。

現在、リスト上の任意のアイテムをマウスで押してカーソルを移動すると、渡された他のアイテムが SelectionChanged イベントに反応します (これは、リスト ビューのマウス ダウン イベントに従って選択が変更されているためです)。ドラッグしてスクロールする動作でダウンしたときにこの反応を無効にできるようにする必要がありますが、ユーザーがリストの項目を選択したときにアクティブなままにしておく必要があります。

これをどのように達成できるか、誰にもアイデアがありますか?

みんな、ありがとう、

RK

4

1 に答える 1

0

あなたを助けることができる方法の1つは、アイテムのMouseUpおよびMouseDownイベントの独自のハンドラーを実装して、MouseDownではなくMouseUpでアイテムを選択することだと思います。次のようなサンプルから始めることができます。

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);
    }
} 
于 2011-08-02T09:15:53.683 に答える