Wpf 绑定到ObservableCollection的LongListSelector不更新

Wpf 绑定到ObservableCollection的LongListSelector不更新,wpf,data-binding,windows-phone-8,observablecollection,longlistselector,Wpf,Data Binding,Windows Phone 8,Observablecollection,Longlistselector,我有一个observateCollection,它是一个视图模型的集合,实现了INotifyPropertyChanged接口 public class FeedsViewModel : ObservableCollection<FeedViewModel> { } 但是,当我在运行时向ObservableCollection添加一些内容时,UI不会随着更改而更新 private void AddFeedClick(object sender, EventArgs e) {

我有一个
observateCollection
,它是一个视图模型的集合,实现了
INotifyPropertyChanged
接口

public class FeedsViewModel : ObservableCollection<FeedViewModel>
{
}
但是,当我在运行时向ObservableCollection添加一些内容时,UI不会随着更改而更新

private void AddFeedClick(object sender, EventArgs e)
{
    var task = FeedModel.Load("Reddit");
    var awaiter = task.GetAwaiter();

    awaiter.OnCompleted(() =>
    {
        var model = awaiter.GetResult();
        FeedModel.Save(model);
        ((ObservableCollection<FeedViewModel>)Resources["FeedsViewModel"]).Add(new FeedViewModel(model));
    });
}
private void AddFeedClick(对象发送者,事件参数e)
{
var任务=FeedModel.Load(“Reddit”);
var awaiter=task.GetAwaiter();
等待者。未完成(()=>
{
var model=waiter.GetResult();
FeedModel.Save(model);
((ObservableCollection)资源[“FeedsView模型])。添加(新的FeedViewModel(模型));
});
}
在将新视图模型添加到
ObservaleCollection
时点击断点并检查集合时,显示集合事件的
CollectionChanged
没有处理程序(为null)

如何让LongListSelector从ObservableCollection更新自身

  • 尝试从代码中将集合绑定为项源,而不是静态绑定(set List.ItemSource=collection)。如果CollectionChanged为null,则表示没有要更改集合的订阅者
  • 您也可以尝试同步添加项目
    我通过从
    (ObservableCollection
    FeedsViewModel
    ,这是项目的实际类型。虽然没有发生无效的强制转换,但这里一定有一些模糊的OO特性在起作用。我怀疑在集合上实际上有两个隐藏事件,一个用于
    ObservableCollection
    类型,另一个用于扩展正在键入,但我不确定。

    尝试同步添加项目,没有效果。尝试从代码设置项目源,没有效果。同时尝试两者,没有效果。需要查看您的类FeedsViewModel。是否覆盖它的PropertyChanged事件?不应该。FeedsViewModel张贴在问题的顶部。我不覆盖Pr操作更改事件。
    private void AddFeedClick(object sender, EventArgs e)
    {
        var task = FeedModel.Load("Reddit");
        var awaiter = task.GetAwaiter();
    
        awaiter.OnCompleted(() =>
        {
            var model = awaiter.GetResult();
            FeedModel.Save(model);
            ((ObservableCollection<FeedViewModel>)Resources["FeedsViewModel"]).Add(new FeedViewModel(model));
        });
    }