代码之家  ›  专栏  ›  技术社区  ›  SergioL

具有依赖属性的WPF MVVM和嵌套视图

  •  1
  • SergioL  · 技术社区  · 15 年前

    我有一个在XAML中定义子视图的父视图。子视图具有 DependencyProperty 绑定到父视图的ViewModel。但是,子视图的视图模型也需要该值。

    <custom:Parent>
      <custom:Child ChildId="{Binding ParentFooId}" ... />
    </custom:Parent>
    

    ChildId 实现为 ChildView 控制。如果 ChildViewModel 需要 ParentFooId ,获取它的正确MVVM方法是什么?

    我不想把 DataContext 儿童观 变成一个 儿童观模型 并在 OnChildIdChanged 处理程序 儿童观 . 对我来说,这似乎不是很有价值。

    我想到的另一个选择是创造一个新的 儿童观模型 并将其设置为 数据上下文 OnParentFooIdChanged 事件(在 ParentViewModel )但这似乎也不太正确,因为视图模型应该对视图视而不见(因此对 数据上下文 s)。

    我好像错过了一些明显的…

    2 回复  |  直到 13 年前
        1
  •  3
  •   Guy    15 年前

    如果我正确理解了这个问题,您只需要在父视图模型中创建子视图模型,传递并保持对父视图模型的引用。这样,您就可以从子视图模型中引用父视图模型的任何属性,并绑定到子视图中的任何一个属性。

        2
  •  0
  •   Brette.Net    15 年前

    如果您只是试图将数据从依赖属性传递到视图模型,我将使用PropertyChangedCallback事件。添加一个将更改的数据发送到视图模型的处理程序。不过,我可能误解了你的意图。