在WPF DataGrid中选择绑定

时间:2013-02-17 06:30:00

标签: wpf mvvm binding datagrid

我的模型(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);
}

我不明白为什么会这样?

1 个答案:

答案 0 :(得分:13)

这最终帮助了我:

我放入了DataGrid:

VirtualizingStackPanel.VirtualizationMode="Standard"