Silverlight DataGrid 绑定的多选、全选

本文介绍如何在WPF应用中使用DataGrid实现列表项的多选功能,包括通过绑定属性控制复选框状态及全选/取消全选操作,并提供了具体的XAML标记和ViewModel代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、xmal页面

 <sdk:DataGrid Grid.Row="1" MinHeight="300" ItemsSource="{Binding List}" SelectedItem="{Binding Selected,Mode=TwoWay}">
            <sdk:DataGrid.Columns>
                <sdk:DataGridTemplateColumn HeaderStyle="{StaticResource Header}" IsReadOnly="True">
                    <sdk:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <CheckBox IsChecked="{Binding IsSelected,Mode=TwoWay}" HorizontalAlignment="Center" VerticalContentAlignment="Center"/>
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellTemplate>
                </sdk:DataGridTemplateColumn>
2、viewModel
 private bool _isSelectAll;
        public bool IsSelectAll
        {
            get
            {
                return this._isSelectAll;
            }
            set
            {
                if (this._isSelectAll != value)
                {
                    this._isSelectAll = value;
                }
                OnPropertyChange("IsSelectAll");
            }
        }


        public ICommand SelectAllCommand
        {
            get
            {
                return new DelegateCommand<bool?>(delegate(bool? isChecked)
                {
                    if (isChecked == null || this.List == null) return;


                    foreach (vm item in this.List)
                    {
                        item.IsSelected = isChecked.Value;
                    }
                });
            }
        }

  private void SelectChanged(object sender, bool isSelect)
        {
            if (isSelect)
            {
                if (this.SysConfigList == null) return;


                bool isAllSelected = true;
                foreach (
vm item in this.List)
                {
                    isAllSelected &= item.IsSelected;
                }
                this.IsSelectAll = isAllSelected;
            }
            else
            {
                this.IsSelectAll = false;
            }

  this.List.BindingSelect(SelectChanged);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值