【问题标题】:How to Add Check Box in Datagrid WPF c#如何在 Datagrid WPF c# 中添加复选框
【发布时间】:2011-07-10 14:22:11
【问题描述】:

您好,我想在数据网格视图中添加复选框。我已经编写了测试代码但失败了。 我想做的是在数据网格中添加一个复选框,其中包含我添加到其中的项目 带有全选和全选选项。

我不知道该怎么做,所以我需要一些帮助。我很困惑,如果我们动态添加,我们将如何跟踪选中或未选中的复选框。

我有当前代码

    public partial class MainWindow : Window
    {
        List<checkedBoxIte> item = new List<checkedBoxIte>();
        public MainWindow()
        {
            InitializeComponent();
            for (int i = 0; i < 5; i++)
            {
                checkedBoxIte ite = new checkedBoxIte();
                ite.sr = i.ToString();
                ite.ch = new CheckBox();
                item.Add(ite);
            }
            dataGrid1.ItemsSource = item
        }
    }
    public class checkedBoxIte
    {
       public string sr {get;set;}
       public CheckBox ch { get; set; }
    }

但我知道添加这样的复选框是最愚蠢的,但这只是一次尝试 上面的类包含两个属性,以后会更多,但都是字符串

【问题讨论】:

    标签: c# wpf datagrid checkbox


    【解决方案1】:

    WPF 不知道如何处理您的 checkedBoxIte 项目。我建议你改变你的班级如下:

    public class checkedBoxIte
    {
       public string MyString {get;set;}
       public bool MyBool { get; set; }
    }
    

    然后以这种方式设置DataGrid 的列:

    <DataGrid AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTextColumn Header="MyString" Binding="{Binding MyString}" />
            <DataGridCheckBoxColumn Header="MyBool" Binding="{Binding MyBool}" />
        </DataGrid.Columns>
    </DataGrid>
    

    现在你可以设置ItemsSource:

    for (int i = 0; i < 5; i++)
    {
        checkedBoxIte ite = new checkedBoxIte();
        ite.MyString = i.ToString();
        item.Add(ite);
    }
    dataGrid1.ItemsSource = item;
    

    【讨论】:

    • 它工作得很好,但我有一些问题,首先有 4 个列出现意味着重复 2。我们如何触发事件或检查这是哪个复选框?
    • 嗯,我不认为有四列是正常的。您确定已将AutoGenerateColumns 设置为False
    • 这是真的。现在正在工作。我可以为第二部分做些什么来检测已检查的行
    • 将处理程序附加到DataGridCellEditEnding,然后从EventArgsRow 属性中提取行。或者,您可以在您的班级上实现INotifyPropertyChanged,然后查看何时直接从那里检查CheckBox
    猜你喜欢
    • 2018-06-24
    • 2016-01-13
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多