如何将视图与多个 ObservableCollection 绑定
我有一个带有多个 ObservableCollection 的 ModelView。 这是正确的方法吗?当视图调用视图模型时,所有 ObservableCollection 都需要用数据重新填充,然后再次对所有 CollectionViewSource 进行绑定。
另外,如何在视图模型的构造函数之外调用 CollectionViewSource.GetDefaultView,我收到一条错误,指出它只能在构造函数中调用。
如果我为每个 CollectionViewSource 创建一个单独的 ModelView,那么在将其中一个视图与 ModelView 绑定时,其余控件也会被绑定,但这次使用 null 值,并且所有 ModelView 都不会被调用。
我真的很困惑该怎么办,请帮忙。
I have a ModelView with multiple ObservableCollection. Is this the right approach and also when ever view calls the view modle, all the ObservableCollection needs to be re-populated with data and then binding takes place again for all the CollectionViewSource.
Also how do I call CollectionViewSource.GetDefaultView outside the constructor of the viewmodel, i get an error that it can only be called in the construtor.
If I create a seperate ModelView for each of the CollectionViewSource, then while binding one of the view with ModelView, rest of the controls also gets binded buth this time with null values and all all the ModelView is not called.
I am really confused what to do, please help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
听起来你正在使用 MVVM。 您当然可以绑定到多个 ObservableCollections。 问题实际上是:你需要吗? 您应该保留与 ObserableCollections 的绑定,以防您的 ViewModel 发生更改并且需要使您的视图随更改而更新。
下面是我为您准备的一个示例,其中一个视图绑定到 ViewModel 中的两个 ObservableCollections 和一个 List。 所以——是的——你当然可以绑定到任何你想要的东西。 在这个例子中,两个 ObservableCollections 将交替更新。 这有帮助吗?
我在此处发布了此代码,如果它有助于拥有整个 vs 项目。
View:
ViewModel(View绑定到这个ViewModel)
It sounds like you're using MVVM. You can certainly bind to multiple ObservableCollections. The question really is: do you need to? You should reserve binding to ObserableCollections for cases where your ViewModel is changing and you need to keep your View updated with the changes.
Here's an example I whipped up for you of a View bound to two ObservableCollections and one List in a ViewModel. So -- yes -- you can certainly bind to whatever you want. In this example, the two ObservableCollections will alternate updating. Does that help?
I posted the code for this here if it helps to have the whole vs project.
View:
ViewModel (View is bound to this ViewModel)