几个viewmodels共享相同的视图
问题描述:
我正在开发一个应用程序,应该有很多的图形功能,我正在构建一个应用层使用WPF。我想在mvvm结构中构建应用层。几个viewmodels共享相同的视图
我建立在一个单独的大型wpf控件上,负责图形处理。因为我开始构建一个负责控制的单视图模型,由于大量使用命令,绑定和行为,此视图模型变得越来越大,包含图形控件的xaml也越来越多。
我想将视图模型拆分为多个视图模型,负责图形控件的各个方面。我该如何将xaml分解为每个视图模型的视图,每个视图模型负责相同控件的自己的绑定,行为,触发器等?
答
有几种方法可以做到这一点也取决于你的ViewModels实现。
这使我想到的第一个想法,你可以以不同的控件给出不同的DataContext,所以你可以做这样的事情(伪XAML):
<Window>
<Grid DataContext="ViewModel1">
<!-- xaml for that view model 1 -->
</Grid>
<Grid DataContext="ViewModel2">
<!-- xaml for that view model 2 -->
</Grid>
<Grid DataContext="ViewModel3">
<!-- xaml for that view model 3 -->
</Grid>
</Window>
basicly我有一个大的控制谁需要几个数据动态的背景下,这有可能吗? – AvivEise