DataSouce更改时,CheckedListBox不会更新

时间:2017-05-22 04:16:27

标签: c# winforms

我有一个WinForms CheckedListBox,我绑定到一个ReadOnlyObservableCollection,其中包含数据模型上的自定义对象列表,但是当我将支持集合更新到ReadOnlyObservableCollection列表时框不会更新。

我已经验证集合的NotifyPropertyChangedNotifyCollectionChanged属性是否正确触发,以及绑定至少在某种程度上有效,因为ListBox确实显示了首次应用绑定时的预期选择。

我尝试使用BindingList使用常规ReadOnlyObservableCollection包裹ObservableCollection,使用ReadOnlyObservableCollection扩展BindingSource.Add以将属性更改为事件公开在DataSource属性上,以及直接设置DataSource属性。

在这一点上,我完全不确定为什么这不起作用。我真的很想让这个绑定工作,因为每次有关集合的任何变化都会手动修改Items对象。

形式:

Form_Load()
{
  SetupCheckListBindings();
}

SetupCheckListBindings()
{
  CodeList.DataBindings.Add("DataSource", DataModel, "Codes") //List only changes programmatically
}

数据模型:

public ReadOnlyObservableCollection<Code> Codes { get; set; }
private ObservableCollection<Code> CodesInternal { get; set; }

public Model()
{
  CodesInternal = new ObservableCollection<Code>();
  Codes = new ReadOnlyObservableCollection<Code>(Codes);
}

public AddCode()
{
  CodesInteranl.Add(new Code()); //Doesn't update
}

0 个答案:

没有答案
相关问题