我有一些实现 INotifyCollectionChanged 的集合。
public sealed class GroupCollection : INotifyCollectionChanged, IList<Group>
{
//...
public event NotifyCollectionChangedEventHandler CollectionChanged;
private void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
{
if (CollectionChanged != null)
{
CollectionChanged(this, e);
}
}
//...
}
它用于 xaml
<CollectionViewSource x:Name="groupedItemsViewSource" Source="{Binding Groups}"/>
然后在 xaml.cs
this.DefaultViewModel["Groups"] = groups.GroupCollection;
收藏品显示得很好。但是 UI 在被触发时不订阅CollectionChanged
也不更新自身。CollectionChanged
也许我需要实现更多的接口来让 UI 控件订阅事件?
PS 我不能使用 ObservableCollection 因为编译器说这“不是 Windows 运行时接口”。