在MVVM设计中,在数据绑定中使用多个DataContext是否必要,甚至是个坏主意?
我对MVVM的看法是ViewModel应该是具有View所需的所有数据的ViewModel。因此,View中指定的DataContext的唯一源对象只是ViewModel。 ViewModel将包含View要绑定的所有源数据。
但是,我不确定我的想法是否正确,是否有某些情况确实需要View想要绑定的多个DataContext。
那么,在数据绑定中为View提供多个DataContext是一个坏主意还是实践?只有ViewModel才是唯一的DataContext吗?
答案 0 :(得分:2)
是的,ViewModel应该是唯一的顶级DataContext,它应该设置在View的根目录下。但是,可能还有其他子DataContexts。例如,ListBox可以绑定到数据列表,其中ListBox的每一行的DataContext绑定到数据列表中的一个项目。