私は自分のモデル (クラス X) にブール型プロパティを持っています:IsSelected
は、次のように a にリンクされて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);
}
なぜこれが起こっているのか理解できませんか?