【发布时间】:2017-03-16 19:50:23
【问题描述】:
我浏览了几乎所有关于这个主题的其他帖子,但结果为零。我有一个用于各种日志显示的 ListBox。控制台通过显示所需信息和适当增加项目列表的大小来正确更新。 “日志开始”和“日志#2”也正确显示在列表框中。此外,正在正确达到“已写入”状态。有人有什么想法吗?
这是我的代码:
public BindingList<string> Items;
public Form1()
{
Items = new BindingList<string>();
Items.Add("Log Beginning");
InitializeComponent();
Items.Add("Log #2");
LBLog.DataSource = Items;
Connect(); // leads to a websocket delcaration, irrelevant here
}
...
private void websocket_MessageReceived(object sender, MessageReceivedEventArgs e)
{
Console.WriteLine("Received " + sender.ToString() + " : " + e.ToString());
WriteLog("Log: " + e.ToString());
Console.WriteLine("Log size: " + Items.Count);
}
private void WriteLog(String msg)
{
Items.Add("test");
LBLog.DataSource = null; // tried adding these two, shouldn't need for a binding list
LBLog.DataSource = Items;
Console.WriteLine("Written");
}
【问题讨论】:
-
@LarsTech 我已经在使用 BindingList,请查看我的代码
-
抱歉,错过了。您发布的代码不会重复该问题。您是否尝试在其他线程中更新该列表?
-
WriteLog方法从不使用传递给它的字符串msg是否有某种原因?
标签: c# windows winforms listbox