16

私は自分のモデル (クラス 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);
}

なぜこれが起こっているのか理解できませんか?

4

1 に答える 1

13

それが最終的に私を助けたものです:

私はDataGridに入れました:

VirtualizingStackPanel.VirtualizationMode="Standard"
于 2013-02-19T06:11:20.790 に答える