我的解决方案包含两个项目。第一个项目连接到外部服务器并使用数据更新自己的结构。
在这个项目中,我有两个以下的课程:
class Quote
{... class fields}
class Quotes:IEnumerable<Quote>
{ List<Quote> list = new List<Quote>(); }
class Main
{
Quotes quotelist = new Quotes;
}
第二个项目就是UI,它旨在使用WPF在屏幕上显示第一个项目的数据。
为此,我创建了一个ObservableCollection
:
ObservableCollection<Quote> quotes = new ObservableCollection<Quote>(quotelist);
然后,我将XAML中的引号绑定到网格。
它不起作用意味着不更新列表的更改。我想我可能会尝试在第一个项目中用List
替换ObservableCollection
,但如果可能的话,我宁愿不这样做。
最佳做法是什么?在我看到的所有示例中,列表(ObservableCollection
)都是在ViewModel
级别创建的。就我而言,列表是在较低级别创建和更新的。
如何使引号(ObservableCollection)知道对quotelist(List)的更改?我希望我的描述有意义。
答案 0 :(得分:0)
然后,您必须以某种方式允许第一个项目通知第二个项目,列表中的内容已更改,并且ObservableCollection需要更新/刷新。 我建议使用以下三种方法之一:
Quotes
类实现INotifyCollectionChanged
接口并直接绑定到它