1、直接修改 datagrid 的 EnableRowVirtualization=“False”
2、其它办法
<DataGrid x:Name="dg" Visibility="Visible" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridCheckBoxColumn></DataGridCheckBoxColumn>
<DataGridTextColumn Header="1" Binding="{Binding cid}"></DataGridTextColumn>
<DataGridTextColumn Header="2" Binding="{Binding sname}">
</DataGridTextColumn>
<DataGridTextColumn Header="3" Binding="{Binding size}">
</DataGridTextColumn>
<DataGridTemplateColumn>
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<TextBlock>4</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Button>del</Button>
<Button>edit</Button>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
binding的ischecked可以改为其它的
<DataGridTemplateColumn>
<DataGridTemplateColumn.Header>
选中
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsChecked}" Click="CheckBox_Check"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
private void CheckBox_Click(object sender, RoutedEventArgs e)
{
//if ...
}