C# 未绑定到INotifyCollectionChanged的UI

C# 未绑定到INotifyCollectionChanged的UI,c#,windows-store-apps,winrt-xaml,inotifycollectionchanged,C#,Windows Store Apps,Winrt Xaml,Inotifycollectionchanged,我有一些实现INotifyCollectionChanged的集合 公共密封类GroupCollection:INotifyCollectionChanged,IList { //... 公共事件通知CollectionChangedEventHandler CollectionChanged; CollectionChanged上的私有void(NotifyCollectionChangedEventArgs e) { 如果(CollectionChanged!=null) { 集合更改(本,

我有一些实现INotifyCollectionChanged的集合

公共密封类GroupCollection:INotifyCollectionChanged,IList
{
//...
公共事件通知CollectionChangedEventHandler CollectionChanged;
CollectionChanged上的私有void(NotifyCollectionChangedEventArgs e)
{
如果(CollectionChanged!=null)
{
集合更改(本,e);
}
}
//...
}
它在xaml中使用


然后在xaml.cs中

this.DefaultViewModel[“Groups”]=Groups.GroupCollection;
收集项目显示得很好。但用户界面不订阅
CollectionChanged
,并且在触发
CollectionChanged
时不更新自身。也许我需要实现更多的接口来让UI控件订阅事件


另外,我不能使用ObservaleCollection,因为编译器说这“不是Windows运行时界面”。

以下使用
ObservaleCollection
对我来说在使用默认网格应用程序模板时效果很好:

using System.Collections.ObjectModel;
...
class MyOC : ObservableCollection<SampleDataGroup> { };
...
var oc = new MyOC();
string id = "title1";
oc.Add(new SampleDataGroup(id, id, id, "", id));
id = "title2";
oc.Add(new SampleDataGroup(id, id, id, "", id));
this.DefaultViewModel["Groups"] = oc;
使用System.Collections.ObjectModel;
...
MyOC类:可观察收集{};
...
var oc=新的MyOC();
string id=“title1”;
oc.Add(新样本数据组(id,id,id,“,id));
id=“title2”;
oc.Add(新样本数据组(id,id,id,“,id));
此.DefaultViewModel[“组”]=oc;
我想你可以在你的项目中做类似的事情:

using System.Collections.ObjectModel;
...
public sealed class GroupCollection : ObservableCollection<Group>
{
...
使用System.Collections.ObjectModel;
...
公共密封类GroupCollection:ObservableCollection
{
...

我无法执行此操作。
GroupCollection
位于另一个项目内(项目类型为“Windows Runtime Component”)。“Windows Runtime Component”内的公共类无法实现
ObservableCollection
。如果我尝试,我会得到编译错误“
ObservableCollection
不是Windows运行时接口”。