Wpf 如何将MVVM模型中的列表转换为视图模型中的可观察集合?
我正在用WPF编写一个示例应用程序,我希望该模型能够在WinForms应用程序中轻松重用,因此我希望不要使用特定于WPF的内容,如INotifyChanged和DependencyObjects 如果一个模型类有一个其他模型类的列表,那么如何在视图模型中实现相应的ObserveableCollection,以便使绑定保持最新 这方面的一个用例是,如果我有一个老板模型对象,它有一个员工的列表。我创建了一个Boss对象,但异步加载了员工列表,如何知道员工列表何时被检索和填充?我希望将加载代码保存在模型中Wpf 如何将MVVM模型中的列表转换为视图模型中的可观察集合?,wpf,silverlight,mvvm,observablecollection,Wpf,Silverlight,Mvvm,Observablecollection,我正在用WPF编写一个示例应用程序,我希望该模型能够在WinForms应用程序中轻松重用,因此我希望不要使用特定于WPF的内容,如INotifyChanged和DependencyObjects 如果一个模型类有一个其他模型类的列表,那么如何在视图模型中实现相应的ObserveableCollection,以便使绑定保持最新 这方面的一个用例是,如果我有一个老板模型对象,它有一个员工的列表。我创建了一个Boss对象,但异步加载了员工列表,如何知道员工列表何时被检索和填充?我希望将加载代码保存在模
我想总结一下,我要问的是,在视图模型反映这些更改的同时,模型间交互的正确方式是什么?您的模型需要提供更改通知。您可以使用
INotifyPropertyChanged
和INotifyCollectionChanged
以不可知的方式执行此操作。与您的问题相反,这些不是特定于WPF的接口。它们位于System.ComponentModel
中-不是WPF命名空间或程序集
如果您真的不想使用这些接口,那么您可以随时提供自己的事件。无论何种情况,视图模型都需要附加到事件以使其与模型保持最新。您的模型需要提供更改通知。您可以使用
INotifyPropertyChanged
和INotifyCollectionChanged
以不可知的方式执行此操作。与您的问题相反,这些不是特定于WPF的接口。它们位于System.ComponentModel
中-不是WPF命名空间或程序集
如果您真的不想使用这些接口,那么您可以随时提供自己的事件。无论何种情况,视图模型都需要附加到事件,以使其与模型保持同步。给定您的示例,您是否也希望在UI中异步显示员工的加载?还是只想在完成加载后显示整个集合?是异步。。。因此,例如,如果集合绑定到一个列表框,那么每当异步调用返回时,它们就会显示出来?还是只想在完成加载后显示整个集合?是异步。。。例如,如果集合绑定到一个listbox,那么每当异步调用返回时,它们就会出现。谢谢,我希望有其他模式可以做到这一点,但看起来不会。另外,我想我总是把INotifyPropertyChanged与WPF联系起来,因为它在那里被大量使用!谢谢,我希望有其他的模式来做这件事,但看起来不会。另外,我想我总是把INotifyPropertyChanged与WPF联系起来,因为它在那里被大量使用!