Xaml 在windows应用商店应用程序中将视图模型从页面传递到用户控件

Xaml 在windows应用商店应用程序中将视图模型从页面传递到用户控件,xaml,windows-store-apps,Xaml,Windows Store Apps,在Windows应用商店拆分应用程序中,我希望将视图模型从页面传递给用户控件。这个场景是,我想在多个页面中重用一些常见的xaml,使用像视图这样的UserControl 在主页中: <common:LayoutAwarePage ... DataContext="{Binding ViewModel, RelativeSource={RelativeSource Self}}" ... > <views:MyUserControlView Model

在Windows应用商店拆分应用程序中,我希望将视图模型从页面传递给用户控件。这个场景是,我想在多个页面中重用一些常见的xaml,使用像视图这样的UserControl

在主页中:

<common:LayoutAwarePage
    ...
    DataContext="{Binding ViewModel, RelativeSource={RelativeSource Self}}"
    ... >
  <views:MyUserControlView Model="{Binding ViewModel}" />
...
永远不会调用模型设定器。如何将用户控件连接到父页面的视图模型

或者,有没有更好的方法来实现页面中使用的共享视图

谢谢


-约翰

正确的装订应该是:

<views:MyUserControlView Model="{Binding}" />

您已经为上面的页面设置了
DataContext
。所有绑定都与当前的
DataContext
相关

尽管如此,二传手仍然不会被召唤。它只是从代码访问
dependencProperty
的包装器。绑定将直接调用
SetValue

根据您的需求,您甚至可能不需要定义自己的
模型
dependencProperty
。每个控件自动从其父控件继承
DataContext
。在上面的示例中,用户控件已将其
DataContext
设置为与页面相同的视图模型

<views:MyUserControlView Model="{Binding}" />