2009-05-04 9 views
0

複数のリストボックスをリストにバインドしようとしています。あるフォーム上のListBoxが更新されると、他のListBoxも更新するようにします。複数のリストボックスが同じリストにバインドされています

私が実行している問題は、基本となるリストを更新するときにListBoxのビューを更新していないようです。私がデバッグでListBox.Itemsを見ると、私が追加したすべての項目がそこにあるが表示されていないことがわかります。また、ListBoxでListを表示する別のフォームを開くと、既に追加されている項目が正しく表示されます。

private List<String> _list; 

public Form1() 
{ 
    InitializeComponent(); 

    _list = StaticInstanceOfList.GetInstance(); 
    listbox1.DataSource = _list; 
} 

public void AddStringToList(string value) 
{ 
    if (!_list.Contains(value)) 
    { 
     _list.Add(value); 
    } 
} 

答えて

5

は、あなたのアイテムを格納し、DataSourceプロパティを経由して、両方のリストボックスに、このリストを割り当てるためにBindingList<T>を使用するようにしてください。

+0

ありがとう、それは私がそれを期待していたように動作します。 –

+0

BindingList は(リストなどとは対照的に)変更通知をサポートするためです。 – Lucero

+0

選択が正しく維持されていることを確認してください。少なくともdropdownlistbox:正しく動作するには、別々のリストをデータソースとして必要とするバグがあります。そうしないと、奇妙な方法でそれらの間で同期が取れます。 –

0

bindingSourceを使用し、両方のリストボックスをバインドします。

関連する問題