Grid 和 DataGridTemplateColumn

来源:互联网 发布:深度触网 知乎 编辑:程序博客网 时间:2024/06/06 06:48

<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);
            }

        }

 

原创粉丝点击