<Grid x:Name="LayoutRoot" Background="White" Height="421" Width="442">
<sdk:DataGrid AutoGenerateColumns="False" Height="338" HorizontalAlignment="Left" Margin="12,0,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="376" >
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn Header="名字">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn Header="删除操作">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Name="button_Delete" Content="删除" Click="button_Delete_Click" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn HeaderStyle="{StaticResource DataGridColumnHeaderCheckBox}" >
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="DeleteEntry" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
<sdk:DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Age}" />
<TextBlock Text="{Binding IsMan}" />
</StackPanel>
</DataTemplate>
</sdk:DataGrid.RowDetailsTemplate>
</sdk:DataGrid>
<Button Content="删除选中项" Height="23" HorizontalAlignment="Left" Margin="341,368,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>
private void button_Delete_Click(object sender, RoutedEventArgs e)
{
if (MessageBoxResult.OK == MessageBox.Show("确定要删除吗?", "注意!", MessageBoxButton.OKCancel))
{
var item = (dataGrid1.SelectedItem as Person);
itemList.Remove(item);
}
}
private void button1_Click(object sender, RoutedEventArgs e)
{
List<int> DeleteItemIndex = new List<int>();
for (int i = 0; i < itemList.Count; i++)
{
var p = itemList[i];
CheckBox selectItem = dataGrid1.Columns[dataGrid1.Columns.Count - 1].GetCellContent(p) as CheckBox;
if (null != selectItem && selectItem.IsChecked == true)
{
DeleteItemIndex.Add(i);
}
}
foreach (var index in DeleteItemIndex.OrderByDescending(c => c))
{
itemList.RemoveAt(index);
}
}