MVVM在Prism中的多个视图相同的ViewModel



我有一个关于具有相同视图模型类型的多个用户控件视图的问题。对于我的困惑,我似乎找不到具体的答案,但这是相当推测的。

    <StackPanel Orientation="Vertical">
        <TextBlock Text="Signature Summary" FontSize="14" FontWeight="Bold" TextAlignment="Center" Height="30"/>
        <my:ParameterFileSummaryView DataContext="{Binding ParamterFile1ViewModel}"/>
        <my:ParameterFileSummaryView DataContext="{Binding ParamterFile2ViewModel}"/>
        <my:ParameterFileSummaryView DataContext="{Binding ParamterFile3ViewModel}"/>
        <my:ParameterFileSummaryView DataContext="{Binding ParamterFile4ViewModel}"/>
        <my:ParameterFileSummaryView DataContext="{Binding ParamterFile5ViewModel}"/>
    </StackPanel>

堆栈面板是主视图中的容器,它具有用于Prism/Unity IoC架构的依赖属性视图模型数据上下文。

因此,这些单独视图的数据内容通过另一个接口绑定到主视图接口的属性。

这一切似乎都工作得很好,并且ParameterFileSummaryView中的元素绑定很好地绑定到第一个parterfile1viewmodel上设置的值。

这正是我想要的。但是当然这些ViewModels是在主窗口的ViewModel中构建的,而不是在Unity容器....中这感觉有点粗糙。有没有一种更干净的方法来实现我所尝试的。

如果这真的是一个没有意义的问题,我很抱歉…但是只见树木不见森林。如果问题让我困惑,我会添加编辑,请耐心点,我不是专家:)。

要为主视图拉出正确的ViewModel,请使用容器。要么作为服务定位器,让每个模型解析为相同的类型,然后拉出IEnumerable<TViewModel>,然后将其绑定到视图。

相关内容

  • 没有找到相关文章

最新更新