如何在Datagrid WPF中添加复选框c#

时间:2011-03-07 19:23:36

标签: c# wpf datagrid checkbox

您好我想在datagrid view.i中添加复选框已写入测试代码但失败了。 我想要做的是在datagrid中添加一个CheckBox,其中包含我添加到其中的项目 选择全部并选择无选项。

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

我有当前的代码

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

但我知道添加像这样的复选框是最愚蠢的事情,但它只是一个尝试 上面的类包含两个属性,稍后它将有更多,但所有将是字符串

1 个答案:

答案 0 :(得分:18)

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;