我的模型(Class X)布尔属性:IsSelected
,链接到WPF DataGrid
,如下所示:
<DataGrid SelectedIndex="{Binding SelectedXIndex,Mode=TwoWay}"
DataContext="{Binding MyViewModel}"
ItemsSource="{Binding ListX}" AutoGenerateColumns="False">
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="IsSelected"
Value="{Binding IsSelected, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"/>
</Style>
</DataGrid.RowStyle>
</DataGrid>
ListX
- ObservableCollection
IsSelecte
- 调用NotifyPropertyChange
效果很好。
但是当我有很多行时,我需要滚动查看它们,然后按下运行以下功能的“全选”按钮,他只选择了一些行而不是全部:(甚至虽然列表中的所有IsSelected都是 true )
public void SelectAll()
{
ListX.All(c => c.IsSelected = true);
}
我不明白为什么会这样?
答案 0 :(得分:13)
这最终帮助了我:
我放入了DataGrid:
VirtualizingStackPanel.VirtualizationMode="Standard"