被證明我有一個ViewModel
有我在我的ListView.ItemContainerStyle
XAML綁定到我的視圖模型的IsSelected
財產IsSelected
屬性的項目。WPF綁定IsSelected到視圖模型不設置那些不在列表中
我提出申請,並填充視圖模型集合(這是在我的ListView
圖示),項目很多,說一下2000。然後我通過按Ctrl-A選擇列表中的所有內容。我的視圖模型集合中的項目只能獲得爲ListView
中可見項目設置的IsSelected
。如果我在列表中向下翻頁,IsSelected
會被設置爲顯示的任何項目。如果我翻閱所有項目,則我的視圖模型中的所有項目都將IsSelected
屬性設置爲true。
這裏是我的列表視圖綁定IsSelected
到我的視圖模型XAML:
<ListView Margin="5" ItemsSource="{Binding FilteredComparisonList}" x:Name="comparisonListView">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="IsSelected" Value="{Binding Mode=TwoWay, Path=IsSelected}" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn Header="Source filename" DisplayMemberBinding="{Binding ImageFile.BaseFilename}" Width="Auto" />
</GridView>
</ListView.View>
</ListView>
爲什麼不IsSelected
在我的視圖模型中的所有項目設置爲true時,我選擇所有項目在ListView
?
順便說一下,這本質上是一樣的問題,因爲這: http://stackoverflow.com/questions/1273659/virtualizingstackpanel-mvvm-multiple-selection – Charlie 2010-01-14 23:07:48
謝謝查理,不知道我錯過了那個職位。該帖子很好地解決了這個問題,即將所選項目作爲CommandParameter傳遞,而不是在視圖模型中維護IsSelected。 – Buck 2010-01-14 23:36:33