【问题标题】:Winforms binding questionWinforms绑定问题
【发布时间】:2011-09-16 02:07:42
【问题描述】:

我对 win 表单中的绑定比较陌生。为了学习该主题,我设置了以下测试应用程序。带有ListBoxButton 的基本winform。

public partial class Form1 : Form
{
    public List<String> stringList = new List<String>();

    public Form1()
    {
        InitializeComponent();
        stringList.Add("First");
        listBox1.DataSource = stringList;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        stringList.Add("Second");
    }
}

字符串“First”在应用程序启动时显示在listBox1 中。但是,当我按下向stringList 添加新字符串的按钮时,listBox1 中不会显示新项目。谁能帮我理解集合数据绑定的基础知识?

【问题讨论】:

    标签: c# .net winforms data-binding collections


    【解决方案1】:

    List&lt;String&gt; 替换为BindingList&lt;String&gt;

    BindingList class 可以用作基类来创建双向数据绑定机制。 BindingList 提供了 IBindingList 接口的具体通用实现。

    List&lt;T&gt; 类不提供有关集合更改的任何通知。所以ListBox 不可能知道添加了一个新元素。但是,如果您使用实现IBindingList Interface 的集合,ListBox 将订阅ListChanged 事件。这就是它知道何时刷新自己的方式。

    【讨论】:

      猜你喜欢
      • 2013-05-26
      • 2011-02-09
      • 1970-01-01
      • 2011-02-15
      • 2018-07-04
      • 1970-01-01
      • 2012-11-02
      • 2011-03-30
      • 2012-06-15
      相关资源
      最近更新 更多