我有一个带有ListBox的Windows窗体。窗体有这种方法Winforms绑定到列表框
public void SetBinding(BindingList<string> _messages)
{
BindingList<string> toBind = new BindingList<string>(_messages);
lbMessages.DataSource = toBind;
}
在其他地方,我有一类称为经理有此属性
public BindingList<string> Messages { get; private set; }
和这条线在其构造
Messages = new BindingList<string>();
最后,我有我的启动程序,实例化窗体和管理器,然后调用
form.SetBinding(manager.Messages);
还有什么我必须这样做,像这样在经理声明:
Messages.Add("blah blah blah...");
将导致添加到线,并在窗体的列表框立即显示?
我根本没必要这样做。我只想让我的经理类能够在其工作时发布到表单。
我试过了,但Manager中的Messages.Add语句不会更新lbMessages.DataSource;它的数量永远不会从0移动。 –
@KellyCline我试着尽可能地模仿你的代码,当我在Manager类中弹出消息时,ListBox自动显示新消息。确保你引用的是同一个Manager类。否则,您可能需要更新您的文章以获取更多信息。 – LarsTech