我的模型(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
IsSelected
- 调用NotifyPropertyChange
很好用。
但是当我有很多需要滚动才能看到的行,而我按下“全选”按钮运行以下函数时,它只选择了一些行而不是全部:(即使列表中所有的IsSelected都是true)
public void SelectAll()
{
ListX.All(c => c.IsSelected = true);
}
我不明白为什么会发生这种情况?