• Silverlight删除数据表格中的数据,表格头部定义全选按钮,批量删除


    实现的效果如图:

     

    前台实现: 

    <UserControl.Resources>
        <Style x:Key="DataGridColumnHeaderCheckBox" TargetType="data_primitives:DataGridColumnHeader">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="data_primitives:DataGridColumnHeader":>
                        <Grid Name="Root">
                            <CheckBox x:Name="CheckAll"   Checked="CheckAll_Checked" Unchecked="CheckAll_Checked"  />
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </UserControl.Resources><!--用户自定义资源,用于实现表格头部的全选-->
    <Grid x:Name="LayoutRoot" Background="White" Height="421" Width="442">
        <sdk:DataGrid AutoGenerateColumns="False" Height="200" 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,Mode=TwoWay}"  />
                        </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" IsChecked="{Binding IsChecked, Mode=TwoWay}"/>
                        </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="313,265,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
    </Grid>   

    后台实现:

    public class Person
    {
        string name;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        int age;
        public int Age
        {
            get { return age; }
            set { age = value; }
        }
        bool isMan;
        public bool IsMan
        {
            get { return isMan; }
            set { isMan = value; }
        }
        bool isChecked;
        public bool IsChecked
        {
            get { return isChecked; }
            set { isChecked = value; }
        }
    }
    //List<Person> itemList = new List<Person>();
    ObservableCollection<Person> itemList = new ObservableCollection<Person>();//动态的数据集合
    public MainPage()
    {
        InitializeComponent();
        itemList.Add(new Person { Name = "当当", Age = 45, IsMan = true,IsChecked=false });
        itemList.Add(new Person { Name = "大雄", Age = 3, IsMan = false, IsChecked = false });
        itemList.Add(new Person { Name = "小新", Age = 12, IsMan = false, IsChecked = false });
        itemList.Add(new Person { Name = "丁丁", Age = 32, IsMan = true, IsChecked = false });
        itemList.Add(new Person { Name = "Gaga", Age = 56, IsMan = true, IsChecked = false });
        itemList.Add(new Person { Name = "司空", Age = 33, IsMan = false, IsChecked = false });
        itemList.Add(new Person { Name = "lfy", Age = 22, IsMan = true });
        itemList.Add(new Person { Name = "lili", Age = 34, IsMan = true, IsChecked = false });
        itemList.Add(new Person { Name = "飞羽", Age = 12, IsMan = false, IsChecked = false });
        itemList.Add(new Person { Name = "司空", Age = 33, IsMan = false, IsChecked = false });
        itemList.Add(new Person { Name = "lfy", Age = 22, IsMan = true });
        itemList.Add(new Person { Name = "lili", Age = 34, IsMan = true, IsChecked = false });
        itemList.Add(new Person { Name = "飞羽", Age = 12, IsMan = false, IsChecked = false });
        dataGrid1.ItemsSource = itemList;
    }
    //删除单个
    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 CheckAll_Checked(object sender, RoutedEventArgs e)
    {

        foreach (var p in itemList)
        {
            p.IsChecked =(bool)(sender as CheckBox).IsChecked;
        }
        dataGrid1.ItemsSource = null;
        dataGrid1.ItemsSource = itemList;
    }
    //删除选中项
    private void button1_Click(object sender, RoutedEventArgs e)
    {

        for (int i = 0; i < itemList.Count; i++)
        {
            if (itemList[i].IsChecked == true)
            {
                itemList.RemoveAt(i);
                i--;
            }
        } 

  • 相关阅读:
    使用C语言实现面相对对象三大特性
    ResNet王者归来:ImageNet上刷新到80.7!
    VAE生成模型
    DeeplabV3++语义分割训练自制数据集
    CUDA编程入门极简教程
    加载预训练模型修改类别数与不修改类别数
    python使用opencv将Labelme生成的分割图转化成二值化分割图
    pytorch 单卡加载多卡模型module
    【pytorch】常用图像处理与数据增强方法合集(torchvision.transforms)(详细)
    C++11:原子交换函数compare_exchange_weak和compare_exchange_strong
  • 原文地址:https://www.cnblogs.com/sydeveloper/p/2667704.html
Copyright © 2020-2023  润新知