2011-08-03 33 views
1

現在、MVVMを使用しているC#でWPFプロジェクトを作成しています。このプロジェクトでは、アイテムソースのデータの各行に対してユーザーコントロールを読み込むリストボックスがあります。ネストされたリストボックス内のマウスホイール

コレクション内の各アイテムに追加されるユーザーコントロールには、データベースから入力されるリストボックスも含まれます。この2番目のリストボックスはしばしば大きくなるため、各アイテムは最初のリストボックスのビューより大きくなります。

私の質問は、リストボックスのスムーズなスクロールを実現する方法です。今は1つのアイテムの上から次のアイテムの上にジャンプします。各項目はリストボックスのビューよりも大きいので、各項目の上から次の項目にジャンプすることなくスクロールできる必要があります。

これを達成するためにスクロールビューを使用しましたが、リストボックスがマウスホイールイベントをインターセプトし、スクロールバー上にマウスカーソルを置かずにスクロールすることはできません。

これを行うより良い方法はありますか?

更新:
スクロールビューコントロールを使用して滑らかなスクロールができますが、マウスがスクロールビュー内にある間はスクロールできません。スクロールするためにマウスをスクロールバーにかける必要があります。

私のマウスホイールイベントを傍受するようなものです。

答えて

2

リストボックスに次のプロパティScrollViewer.CanContentScroll="False"を設定できます。

+0

これは私が持っているものを改善するようではありません。現在、スクロールビューアでスムーズにスクロールすることはできますが、スクロールビューアのアイテム上にマウスを置いている間はスクロールできません。私のマウスはスクロールするためにscrollviewコントロールのスクロールバー上になければなりません。 –

+0

[Snoop](http://snoopwpf.codeplex.com/)を使用し、マウスホイールイベントを処理している人を確認することをお勧めします。 – dowhilefor

4

ListBoxではなくItemsControlを使って、私がやろうとしていたことを達成することができました。それはListBoxコントロールのようにロードされ、私のすべてのデータをプルして、ScrollViewがスクロールを処理させるようにしました。リストボックスのようにマウスホイールを邪魔しませんでした。

アイテムを選択する必要がない場合は、ItemsControlの使用を強くお勧めします。

+0

私にとって完璧に動作します - リストボックス内のリストボックスはリストボックス内のitemscontrolに変更されました。ありがとう! – Dean

関連する問題