【问题标题】:Adding Class instance as a new Row in DataGridView (c#)在 DataGridView (c#) 中将 Class 实例添加为新行
【发布时间】:2011-01-05 09:48:33
【问题描述】:


我有课说

[Serializable]
    public class Answer
    {
        [DisplayName("ID")]
        public string ID { get; set; }
        [DisplayName("Value")]
        public string Value { get; set; }
    }

我有一个 datagridview 与上述类的有界列。

此类答案的实例在需要时动态创建。 创建每个类实例时如何更新 datagridview。

有没有可能做这种事情。

dataGridView.Rows.Add(classInstance);

提前致谢,
阿米特

【问题讨论】:

    标签: c# .net data-binding datagridview


    【解决方案1】:

    是的,但不是你这样做的方式。

    您需要使用数据绑定。

    类似下面的东西应该可以工作:

    var ds = new BindingList<Answer>();
    dgv.DataSource = ds;
    

    现在当你这样做时:

    ds.Add( new Answer { ... });
    

    它将被添加(如您所愿)。

    【讨论】:

    • 是否可以使用序列化的 xml 而不是类实例来实现这一点。正如你所说,我正在将 xml 反序列化为类实例并更新 datagridview。
    • @Amit Shah:我建议你创建另一个问题。
    • 使用此解决方案后,它会阻止排序机制吗?如何启用它们。
    • @Amit Shah:那么你需要像SortableBindingList 这样的东西。一个在这里(martinwilley.com/net/code/forms/sortablebindinglist.html),但谷歌还有更多。
    猜你喜欢
    • 1970-01-01
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多