c# - Winforms绑定(bind)问题

标签 c# .net winforms data-binding collections

我对以 win 形式绑定(bind)比较陌生。为了学习这个主题,我设置了以下测试应用程序。带有 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 中。谁能帮助我了解集合数据绑定(bind)的基础知识?

最佳答案

替换List<String>BindingList<String> .

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

List<T>类不提供有关集合更改的任何通知。所以没办法ListBox会知道添加了一个新元素。但是,如果您使用实现了 IBindingList Interface 的集合, ListBox 订阅 ListChanged事件。这就是它知道何时刷新自身的方式。

关于c# - Winforms绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6367540/

相关文章:

c# - 使用 webkitbrowser 调用按钮提交

c# - 具有通用类型字段的结构的大小

c# - 透明Windows窗体,内部有OpenGL绘图

c# - 通过 Win + M windows 快捷方式最小化无边框窗体

c# - 什么是执行框架?

c# - Stacktrace信息保存原始源路径

C# 按钮仅在第二次单击时触发

c# - 两个WinForm之间的TreeView的Invoke方法应该在哪里处理?

c# - 从文本文件中读取丹麦语字符

c# - 将 Id 或其他属性添加到 ASP.NET MVC 3 Html Helper Textbox