我有WPF Application
,我想使用Model-View-ViewModel pattern
。所以,我创建了我的Model
类,我的View
(XAML
)和我的ViewModel作为它们之间的桥梁。 ViewModel的ObservableCollection
用于填充ListBox
的内容。所以,在我的XAML中,我将ItemSources
绑定到了我的列表名称。
无论如何,我的方法fillMyDataStructure()仅在启动应用程序时被调用。
我的问题是应用程序启动时未填写列表。用户单击“连接到数据库”按钮,并且仅当连接成功时才填充列表。但我的ListBox是空的,因为应用程序尝试仅在启动时填充它,此时列表为空cource。那么,我该如何解决这个问题,保持对Model-View-ViewModel模式的忠诚?提前谢谢。
答案 0 :(得分:1)
您需要检测列表中的更改。您可能需要两种方法。一种是检测何时包含集合的属性已更改(即,您将其设置为另一个集合实例)。另一个是当收集本身被更改时(当你添加或删除项目时)
你使用ObservableCollection解决了第二个问题。
对于第一个,您需要为集合属性实现INotifyPropertyChanged
接口并引发PropertyChanged
事件。
您可以轻松找到实现此接口的示例。