WPF datacontext父/子usercontrols

时间:2010-02-09 10:13:51

标签: wpf user-controls datacontext

我有一个WPF应用程序,它由一个包含usercontrol的窗口组成,而usercontrol又包含另一个子usercontrol。

我的第二个usercontrol的viewmodel中有一个SelectedName的dependencyProperty。我希望父控件能够访问此属性并在父控件的文本块中显示SelectedName。

我对如何做到这一点感到有些困惑。

似乎有两种方法可以去(如果我理解正确的话) 1.在子控件上添加一个事件,并将事件冒泡向上并在父控件中处理。 2.直接在父控件的文本块绑定中尝试并访问子项的依赖项属性。

对于这些方法中的任何一种,我所坚持的是如何处理控件(子级或父级)datacontext或viewmodel。

这是一个标志,我正在走错了轨道,还是我需要将控件的datacontext转换为有问题的viewmodel类型,然后使用它?或者我是否需要在两个用户控件之间共享相同的viewmodel?

我很感激有关这种方法的任何反馈 - 任何示例都非常有用,因为我发现我有几个这种父/子控制要求的实例。

再次感谢您的时间。

1 个答案:

答案 0 :(得分:2)

用于父控件的视图模型可以将子控件的视图模型作为属性,这样您就可以直接从父控件访问它。

public class ParentViewModel
{
    public ChildViewModel child { get; set; }
}

然后在xaml中,假设datacontext设置为ParentViewModel对象,我们可以从ChildViewModel轻松访问属性......

<TextBlock Text="{Binding Path=child.SomeTextProperty}" />