假设在ParentView.xaml中有一个名为ParentUserControl的用户控件。在后面的代码中,我设置了一个ParentViewModel的实例,因为它是 DataContext。在ParentUserControl中有一个ChildUserControl。我如何在childUserControl的 视图模型中访问ParentViewModel a ParentUserControl的DataContext,并且以相反的方式访问parentViewModel中的childviewmodel。访问父USerControl ViewModel或反之亦然
ParentView.xaml
<UserControl x:Class="Test.ParentView"
mc:Ignorable="d"
Name="ParentUserControl"
>
<UserControl.Resources>
<ControlTemplate x:Key="ChildControlTemplate">
<control:ChildUSerControl/>
</ControlTemplate>
</UserControl.Resources>
<Grid>
<Border Grid.Row="0" BorderBrush="{StaticResource BorderBrush}" BorderThickness="0,0,0,0">
<ContentControl Name="ChildControlTemplate" Width="Auto" ></ContentControl>
</Border>
</Grid>
</UserControl>
ParentView.xaml.cs
public ParentView()
{
ParentViewModel parentViewModel = new ParentViewModel();
this.DataContext = parentViewModel;
ChildUSerControl childUserControl = new ChildUserControl();
InitializeComponent();
ChildControlTemplate.Content = childUserControl;
}
如何将parentviewmodel传递给childviewmodel实例?在这种情况下,我会获得parentviewmodel的活动实例吗? – lukai
ChildViewModel是在ParentViewModel内部创建的,所以ParentViewModel的实例可以只传递为'this'。它只是这个阶段的两个c#类型之间的父子关系,所以你可以按照你喜欢的方式来处理 - 到那时XAML已经超出了图片的范围。 –