我正在實施自定義MultiSelectionTreeView
。該控制繼承自TreeViewItem
繼承的ItemsControl
,MultiSelectionTreeViewItem
。 由於龐大的數據集,我想綁定到這個控制我使用VirtualizationStackPanel
作爲它的主機。虛擬化集合項目容器一致性
我將TreeViewItems IsSelected
道具綁定到ViewModelClass IsSelected
屬性。 當我在樹中向下滾動時,選定的項目將從視口中移出,並且IsSelected
屬性將設置爲false(因爲MultiSelectionTreeViewItems與樹的斷開連接的虛擬化)。當我回滾一個新的物品容器(MultiSelectionTreeViewItem)時,根據ViewModel將該物品的IsSelected屬性設置爲true。
現在我不能決定是否因爲某個容器項目從/返回到視口或模型或視圖模型層發生更改而導致Selected事件發生。
更糟糕的是我無法設置斷開項目的IsSelected屬性。例如,使用Shift選擇更多項目並向下滾動。
我無法訪問我的控件實現中的viewmodel類。
有什麼想法?
我會使用snoop並檢查值是否爲「本地」或 「綁定」,其中綁定值突出顯示爲綠色。 –