【问题标题】:Several viewmodels sharing the same view多个视图模型共享同一个视图
【发布时间】:2013-02-03 17:20:15
【问题描述】:

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

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

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

【问题讨论】:

    标签: wpf xaml mvvm binding viewmodel


    【解决方案1】:

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

    我想到的第一个想法,你可以给不同的控件赋予不同的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>
    

    【讨论】:

    • 基本上我有一个大型控件需要动态地使用多个数据上下文,这可能吗?
    猜你喜欢
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多