大量のデータがあるため仮想化を使用するMultipleSelectionTreeView
から継承を作成しました。ItemsControl
ツリーでアイテムを選択したら、下にスクロールしてShiftキーを押しながら他のアイテムを選択すると、2つの間のアイテムも選択されます。
この関数を使用して次のアイテムを取得し、後で選択したように設定します。
internal MultipleSelectionTreeViewItem GetNextNodeAtSameLevel()
{
MultipleSelectionTreeViewItem nextNodeAtSameLevel = null;
ItemsControl parentControl = ParentItemsControl;
if (parentControl != null)
{
int index = parentControl.ItemContainerGenerator.IndexFromContainer(this);
if (index != parentControl.Items.Count - 1) // if this is not the last item
{
var item = ParentControl.ItemContainerGenerator.ContainerFromIndex(index + 1);
nextNodeAtSameLevel = item as MultipleSelectionTreeViewItem;
}
}
return nextNodeAtSameLevel;
}
アイテムは私にとってnullです。これは仮想化によるものだと思います
これを解決するための回避策はありますか?または、独自の仮想化パネルを作成する唯一の方法