我已經實現類似於使用視圖模型來存儲IsSelected值在this post描述的一個的選擇模式,以及由ListViewItem.IsSelected
結合視圖模型IsSelected:VirtualizingStackPanel + MVVM +多個選擇
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="IsSelected" Value="{Binding Mode=TwoWay, Path=IsSelected}"/>
</Style>
</ListView.ItemContainerStyle>
它的工作原理總的來說,但我遇到了嚴重的問題。通過在列表視圖中使用a VirtualizingStackPanel
作爲面板,將只創建可見的ListViewItem
。如果我使用「Ctrl + A」選擇所有項目,或者在第一個項目上使用快捷鍵組合(如「Shift + Ctrl + End」),則所有項目都會被選中,但對於不可見項目,ViewModel不會獲得其IsSelected設置爲true。這是合乎邏輯的,因爲如果未創建ListViewItem
,則綁定無法工作。
有人遇到同樣的問題,並找到了解決方案(除了不使用VirtualizingStackPanel
)?
嘗試針對此問題的完整解決方案: http://stackoverflow.com/a/29545790 – nvkokorin 2015-04-09 18:17:59