C#绑定到另一个ObservableCollection中的ObservableCollection

时间:2012-05-11 13:34:11

标签: c# wpf binding observablecollection

我有一个ObserveableCollection,它包含另一个ObserveableCollection。在我的WPF中,我设置了对Persons.Lectures的绑定。 我的问题是,当我更改“讲座”集合中的任何值时,“人物”集合不会通知我和我的绑定。将ObserveableCollection用于另一个ObserveableCollection时,这通常是一个问题吗?

我如何解决这个问题,以便我的绑定能够做出反应?

3 个答案:

答案 0 :(得分:3)

ObservableCollection实现INotifyCollectionChanged,它会通知您集合本身的更改(添加,更改顺序等)。

如果您希望更新绑定,则ObservableCollection中包含的实际对象必须实现INotifyPropertyChanged。您可能会注意到该集合也实现了该接口,但这是为了通知集合对象本身属性的更改,而不是对其内容属性的更改。

答案 1 :(得分:0)

我不清楚你的情况在这里。 “人”是一个可观察的集合吗?然而,你说它有一个“Lectures”属性,而标准的ObservableCollection则不然。这是一个从ObservableCollection继承的新类,它有一个“Lectures”属性,也是一个ObservableCollection?

我猜你有一个Person对象的ObservableCollection,它本身有一个ObservableCollection of Lectures。是这样的吗?如果是这样,也许你只是错误地构建你的Binding。

答案 2 :(得分:0)

虽然我(和WPF一般)更喜欢ObservableCollection,但我建议您使用BindingList来表示这个“特定”的用途。

据我所知,另一个BindingList中的BindingList会将集合更改的通知传播到层次结构中而不需要任何额外的管道。

试着让我知道。

相关问题