2012-03-13 14 views
4

私はこれを理解しようとしています。私はWPFで経験はありますが、私はこのようなことは一度も見たことがありません。リストボックスシフトマルチクリックアンカーが正しく設定されていない

私は選択可能なListBoxItemを含むListBoxを持っています。リスト内の項目は、マウスをクリックするか、上下の矢印を使用して選択できます。私はSelectionMode.Extendedを使用していますので、私のリストは複数の選択肢をサポートしています。

問題:リスト内の項目をクリックし、別の項目をShift-クリックすると、予想通りに正しい範囲が選択されます。残念ながら、上/下矢印の使用は正しく機能しません。代わりに、選択された範囲は、矢印キーで選択された項目ではなく、最後のCLICKED項目に基づいているようです。例えば

:あなたがアイテム2及び3は、代わりに、選択されることが予想される

[Item 1] <- Click this item 
[Item 2] <- Use the down arrow to select this item 
[Item 3] <- Shift-Click this item 

項目(1、2、および3)選択されているすべての。

すべてのListBoxプロパティに正しい値が設定されています(つまり、矢印キーを使用してSelectedItemsプロパティを更新します)、私の唯一の問題は、ListBoxが内部的にShift-Click選択を処理する方法と思われます。私の知る限りでは、これはListBoxの "マルチセレクトアンカー"がマウスクリックで設定されているが、矢印キーでは設定されていないと考えられます。

これまでに遭遇して解決した人はいますか? 「マルチセレクトアンカー」を手動で設定する方法はありますか?ご協力いただきありがとうございます!

私はこれまでの解像度考え出したクリス

答えて

2

:あなたはSelectedIndexをを変更した後のアイテムにフォーカスを設定する必要があり、これを解決するために

を:

if (SelectedIndex > 0) { 
    SelectedIndex--; 
    ListBoxItem item = ItemContainerGenerator.ContainerFromIndex(SelectedIndex) as ListBoxItem; 
    item.Focus(); 
} 

これは、どのようにリスト内の選択項目を下に移動しますか。ただし、項目をアンカーとして認識させるには、Shiftキーを押しながら選択する項目にフォーカスを設定する必要があります。

関連する問題