各位老师好!
  
   在wpf中,在datagrid控件,第一列添加一个checkbox。我在遍历checbox的选择值的时候,发现当datagrid的行超过28行,就崩溃。下面把代码发出来。
xaml文件DataGrid的配置如下:
  <DataGrid Margin="0,0,0,0"  Grid.Row="0" Grid.Column="0"  Height="450" VerticalAlignment="Top"   Name="dataGrid"  IsReadOnly="True" CanUserAddRows="false" AutoGenerateColumns="True">
                        <DataGrid.Columns>                            <DataGridTemplateColumn>
                                <DataGridTemplateColumn.Header>
                                    <CheckBox Name="selectAll_checkBox" Content="全选" IsEnabled="False" HorizontalAlignment="Center" Click="selectAll_Checked"/>
                                </DataGridTemplateColumn.Header>                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <CheckBox Name="select_checkBox"   Click="CheckBox_Checked" Tag="{Binding Path= id}"/>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                        </DataGrid.Columns>
                    </DataGrid>
全部的xaml:<Page x:Class="metadataTool.DelMetaDataPage"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/up-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      d:DesignHeight="650" d:DesignWidth="1100"
Title="DelMetaDataPage">
    <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" >
        <ScrollViewer.Content>
            <StackPanel Height="{Binding Path=ActualHeight,ElementName=exportMetaData_page}" Width="{Binding Path=ActualWidth, ElementName=exportMetaData_page}"  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="70"></ColumnDefinition>
                        <ColumnDefinition Width="110"></ColumnDefinition>
                        <ColumnDefinition Width="*"></ColumnDefinition>
                    </Grid.ColumnDefinitions>
                    <Label Grid.Column="0" VerticalAlignment="Top" Margin="5 5 0 0">删除类别</Label>
                    <ComboBox Name="delTypeCombox"  Grid.Column="1" SelectedIndex="0" Height="24" VerticalAlignment="Top" Margin="0 5 10 0">
                        <ComboBoxItem Name="exported" >已导出</ComboBoxItem>
                        <ComboBoxItem Name="unExport">未导出</ComboBoxItem>
                    </ComboBox>
                    <StackPanel Name="searchCondition_stackPanel" Grid.Column="2" VerticalAlignment="Top">
                       
                    </StackPanel>
                </Grid>
                <Grid Height="500" Margin="1,5,2,5"  Width="1200">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition></ColumnDefinition>                        
                    </Grid.ColumnDefinitions>                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"></RowDefinition>
                        <RowDefinition Height="auto" ></RowDefinition>
                        <RowDefinition Height="7*" />
                    </Grid.RowDefinitions>                    <DataGrid Margin="0,0,0,0"  Grid.Row="0" Grid.Column="0"  Height="450" VerticalAlignment="Top"   Name="dataGrid"  IsReadOnly="True" CanUserAddRows="false" AutoGenerateColumns="True">
                        <DataGrid.Columns>                            <DataGridTemplateColumn>
                                <DataGridTemplateColumn.Header>
                                    <CheckBox Name="selectAll_checkBox" Content="全选" IsEnabled="False" HorizontalAlignment="Center" Click="selectAll_Checked"/>
                                </DataGridTemplateColumn.Header>                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <CheckBox Name="select_checkBox"   Click="CheckBox_Checked" Tag="{Binding Path= id}"/>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                        </DataGrid.Columns>
                    </DataGrid>
                    
                    
                    <Button Content="移除" Height="23" Grid.Row="1"  Name="button_remove" IsEnabled="False" Width="108" Click="button_remove_Click" Margin="322,6,767,14" />
                    <Button Content="删除" Grid.Row="1" Height="23" Name="button_delete"  IsEnabled="False" Width="108" Click="button_delete_Click" HorizontalAlignment="Left"  Margin="646,6,0,0"  VerticalAlignment="Top"  />
                    
                </Grid>            </StackPanel>
        </ScrollViewer.Content>
    </ScrollViewer>
</Page>
遍历datagrid 代码如下: for (int index = 0; index < dataGrid.Items.Count;index++ )//foreach (var item in this.dataGrid.Items)
             {
               FrameworkElement item = dataGrid.Columns[0].GetCellContent(dataGrid.Items[index]);
                 DataGridTemplateColumn temp = (dataGrid.Columns[0] as DataGridTemplateColumn);
                 CheckBox cb = temp.CellTemplate.FindName("select_checkBox", item) as CheckBox;                 if (!(cb.IsChecked == true))
                 {
//逻辑代码
                 }
              }
当dataGrid.Items.Count小于28的时候,程序运行良好。当时dataGrid.Itmes.Count大于28的时候,
运行到FrameworkElement item = dataGrid.Columns[0].GetCellContent(view); 
 
item 为null。请问诸位老师,这是什么原因呢?多谢了。