Wpf 多个视图模型共享同一视图

Wpf 多个视图模型共享同一视图,wpf,xaml,mvvm,binding,viewmodel,Wpf,Xaml,Mvvm,Binding,Viewmodel,我正在开发一个应该具有很多图形功能的应用程序,我正在使用wpf构建一个应用程序层。我想在mvvm结构中构建应用层 我正在构建一个大型wpf控件,负责图形处理。由于这一点,我开始构建一个负责控件的单一视图模型,由于大量使用命令、绑定和行为,这个视图模型变得越来越大,包含图形控件的xaml也变得越来越大 我想将视图模型分成几个视图模型,负责图形控件的各个方面。如何将xaml拆分为每个视图模型的视图,每个视图模型负责同一控件的绑定、行为、触发器等 根据您的ViewModels实现,有几种方法可以做到这

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

我正在构建一个大型wpf控件,负责图形处理。由于这一点,我开始构建一个负责控件的单一视图模型,由于大量使用命令、绑定和行为,这个视图模型变得越来越大,包含图形控件的xaml也变得越来越大


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

根据您的ViewModels实现,有几种方法可以做到这一点

我想到的第一个想法是,您可以为不同的控件提供不同的DataContext,因此您可以这样做(伪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>