数据绑定中的多个DataContext是必要的吗?

时间:2012-12-27 21:44:40

标签: c# design-patterns data-binding mvvm

在MVVM设计中,在数据绑定中使用多个DataContext是否必要,甚至是个坏主意?

我对MVVM的看法是ViewModel应该是具有View所需的所有数据的ViewModel。因此,View中指定的DataContext的唯一源对象只是ViewModel。 ViewModel将包含View要绑定的所有源数据。

但是,我不确定我的想法是否正确,是否有某些情况确实需要View想要绑定的多个DataContext。

那么,在数据绑定中为View提供多个DataContext是一个坏主意还是实践?只有ViewModel才是唯一的DataContext吗?

1 个答案:

答案 0 :(得分:2)

是的,ViewModel应该是唯一的顶级DataContext,它应该设置在View的根目录下。但是,可能还有其他子DataContexts。例如,ListBox可以绑定到数据列表,其中ListBox的每一行的DataContext绑定到数据列表中的一个项目。