MVVM绑定嵌套用户控件

时间:2012-12-15 19:43:47

标签: wpf mvvm binding

我有MainViewModel,其中包含选项卡视图模型的集合。每个选项卡可以是不同类型的视图模型(不同视图)。当用户添加新选项卡时,可以识别标签视图的更正类型(基于视图模型),但它根本没有绑定。例如,一个视图模型包含GridView,itemsSource设置为集合,但如果我在该集合的get属性上设置断点,则它永远不会被命中。 (但是当我实例化这个视图模型时,我将此集合设置为新的ObservableCollection,因此会触发NotifyPropertyChanged事件) - 所以我认为嵌套用户控件(视图模型)的数据上下文设置错误

1 个答案:

答案 0 :(得分:0)

通常在MVVM模型中,您使用数据模板绑定数据,该模板将您的viewmodel与数据类型对齐,并将视图与您指定的视图对齐。 MVVM通常遵循视图的模型作为表示,视图模型作为数据,通常与XAML中的数据模板绑定,通常是app.xaml或专门创建的MainWindowResources.xaml文件,用于类型和绑定的关系。

通常当某些东西没有被正确绑定时,我经常会发现因为视图已经显示但视图模型没有绑定到它,数据不知道如何显示或更新。

EG:在常用的MSDN参考MVVM中:http://archive.msdn.microsoft.com/mag200902MVVM/Release/ProjectReleases.aspx?ReleaseId=2026

<DataTemplate DataType="{x:Type vm:AllCustomersViewModel}">
<view:AllCustomersView />
</DataTemplate>