2016-07-31 4 views
0

私はlistViewに情報を追加するコードを持っていますが、それはいくらか "盗聴された"ように思えます。だから、私は2つの情報を持っています。それは完全に1つを追加しますが、それが2番目のものを追加すれば、それはすでにそこに存在しています。&は私に最初のアイテム名を示していますので、基本的にどういうわけか同じものを2回追加しようとします。C#リストビューに項目を追加するとスレッドによって盗聴されますか?

info.Text = Username; 
info.SubItems.Add(Password); 
info.SubItems.Add(Points.ToString()); 
info.SubItems.Add(Level.ToString()); 
listView1.Items.Add(info); 

ユーザー名、パスワードなどのコンソール入力を見て、「デバッグ」しようとしました。これらはすべて異なっていました。

// EDIT

情報は(addItemsに渡される場合、私はちょうど)、空、その後、データの変更を第二のデバッグをしたので、私はそれが何らかの形でのスレッドで盗聴ますと思います。

+0

を申し訳ありませんが、あなたは( '新しいのListViewItemを行っています); '毎回? –

+0

毎回、私はプログラムの開始時にそれを呼びました。 –

+0

だから、実際にはもう一度追加することはできません...何が起こっているのかを正しく理解していれば...あなたのコードをもっと共有してください。 –

答えて

0

これはあなたが探していた解決策ではない場合は謝罪してください。あなたの質問の詳細が不足している可能性があるので、これは私が理解できるもので作られた

情報はカスタムクラスですか?もしそうなら、私はSubItemsがListオブジェクトであると仮定します。これらのシナリオが正しい場合は、文字列にデータをシリアル化して、リストビューに追加しようとしているように私は、それはそうではないと誤解していた場合、あなたのクラスは今

public class info 
{ 
    public string Text { get; set; } 
    public List<string> SubItems { get; set; } 

    /* Other Code */ 
} 

ようになっているはず?あなたがこれをやって行くことができるいくつかの方法がある場合は、次の場合は今

public class info 
{ 
    /* Other Code */ 

    public override string ToString() 
    { 
     return $"Username: {Text}; Password: {SubItems[0]}; Points: {SubItems[1]}; Level: {SubItems[2]};" 
    } 
} 

は、このすべてが真実であるあなたが今行うことができます:

info PersonInfo = new Info() 
{ 
    Text = Username; 
    SubItems = new List<string>() 
    { 
     Password, 
     Points.ToString(); 
     Level.ToString(); 
    } 
} 

ListView1.Items.Add(ParsonInfo.ToString()); 
+0

うーん、基本的に。サーバーから情報を受け取った後、addItem voidに情報を渡しますが、情報の変更を最初のスレッドにスレッド化しているようです。だから1つがPeterなら2番目はJamesで、情報が渡されたらaddItem voidの情報はPeter&Peterです。 –

+0

情報を取得するにはInvokeを使用していますが、これは必須ですが、必須項目ではないように見えるため、項目を追加する際にinvokeを使用していません。 –

+0

あなたは偶然、情報クラスの新しいインスタンスを作成していますか?オブジェクトが静的に設定されている場合は、「1つだけ」が存在する可能性があることに注意してください。したがって、新しい情報インスタンスを作成することによって可能性があります。 info Peter = new Info() info James = new Info() do ListView1.Items.Add(Peter); ListView1.Items.Add(James); もちろん、はるかに堅牢な方法で! –

関連する問題