将datagridview绑定到[Browsable(false)]列

时间:2012-02-23 06:02:27

标签: .net winforms binding .net-3.5 datagridview

我有一个数据网格,我绑定到有一些标记为[Browsable(false)]的列的类。这些列显示为空白。有没有办法解决这个问题。

我没有使用任何自动绑定,而是自己创建列并设置DataPropertyName属性。

我花了很长时间才发现为什么他们是空白的我现在希望有一些简单的方法来展示他们的价值观。我唯一能想到的是编写自己的DataGridViewColumn类并重新实现绑定。还有其他想法吗?

以下是一些演示此问题的代码,GridBrowsableProblem是一个新的表单,其中有一个DataGridView。运行时,ProblemProperty没有值。

public partial class GridBrowsableProblem : Form
{
    public class ProblemTestClass
    {
        [Browsable(false)]
        public string ProblemProperty { get; set; }

        public string AnotherProperty { get; set; }
    }

    public GridBrowsableProblem()
    {
        InitializeComponent();
        DataGridViewTextBoxColumn column1 = new DataGridViewTextBoxColumn();
        column1.DataPropertyName = "ProblemProperty";

        DataGridViewTextBoxColumn column2 = new DataGridViewTextBoxColumn();
        column2.DataPropertyName = "AnotherProperty";

        ProblemTestClass item = new ProblemTestClass();
        item.ProblemProperty = "test1";
        item.AnotherProperty = "test2";

        BindingList<ProblemTestClass> bindingList = new BindingList<ProblemTestClass>();
        bindingList.Add(item);

        dataGridView1.Columns.Add(column1);
        dataGridView1.Columns.Add(column2);

        dataGridView1.DataSource = bindingList;
    }
}

1 个答案:

答案 0 :(得分:0)