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 ランタイム インターフェイスではない」と言っているからです。