几个视图模型共享相同的视图

时间:2013-02-03 17:20:16

标签: wpf xaml mvvm binding viewmodel

我正在开发一个应该具有大量图形功能的应用程序,我正在使用wpf构建一个应用层。我想在mvvm结构中构建应用层。

我正在构建一个负责图形处理的大型wpf控件。因为我开始构建一个负责控件的单一视图模型,所以这个视图模型变大了,因为大量使用命令,绑定和行为,包含图形控件的xaml也是如此。

我想将视图模型拆分为几个负责图形控件各个方面的视图模型。我如何将xaml拆分为每个视图模型的视图,每个模型都负责同一个控件的绑定,行为,触发器等?

1 个答案:

答案 0 :(得分:1)

根据您的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>