2017-03-16 20 views
0

このトピックに関するほとんどすべてのスレッドをほぼゼロで検索しました。私は並べ替えのログ表示に使用しているListBoxを持っています。必要な情報を表示し、Itemsリストのサイズを適切に増やすことによって、コンソールが正しく更新されます。 "Log Beginning"と "Log#2"もListBoxに正しく表示されます。また、「書き込み済み」状態に正しく到達しています。誰にもアイデアはありますか?ここでListBoxデータソースは更新されません(Windowsアプリケーション)

は私のコードです:

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"); 

    } 
+0

@LarsTech私はすでにBindingListを使用しています。私のコード –

+0

をご覧ください。申し訳ありません。あなたが投稿したコードは問題を複製しません。別のスレッドでそのリストを更新しようとしていますか? – LarsTech

+0

'WriteLog'メソッドが渡された文字列' msg'を使用しない何らかの理由はありますか? – JohnG

答えて

0

私は問題を発見しました。私は知らないうちに別のスレッドから更新しようとしていました。 This answerは私の問題を解決するのを助けました。

関連する問題