我有一个WPF应用程序,它由一个包含usercontrol的窗口组成,而usercontrol又包含另一个子usercontrol。
我在第二个用户控件的视图模型中有一个SelectedName的dependencyProperty。我希望父控件能够访问此属性并在父控件的文本块中显示SelectedName。
我有点卡住了,不知道该怎么做。
似乎有两种方法(如果我理解正确的话) 1.在子控件上添加一个事件,让事件向上冒泡,并在父控件中进行处理。2.尝试在父控件上的textblock绑定中直接访问子对象的dependency属性。
对于这两种方式中的任何一种,我被困在如何获得控件(子或父)的datacontext或viewmodel的句柄上。
这是不是表明我走错了路,或者我需要将控件的datacontext转换为有问题的视图模型类型,然后再使用它?或者我是否需要在两个用户控件之间共享相同的视图模型?
如果有任何关于这种方法的反馈,我将不胜感激--任何例子都会非常有用,因为我发现我已经有几个这种父母/孩子控制要求的实例。
再次感谢您的宝贵时间。
发布于 2010-02-09 18:19:35
用于父控件的视图模型可以将子控件的视图模型作为属性,这样您就可以直接从父控件访问它。
public class ParentViewModel
{
public ChildViewModel child { get; set; }
}然后在xaml中,假设datacontext被设置为ParentViewModel对象,我们可以很容易地从ChildViewModel访问属性...
<TextBlock Text="{Binding Path=child.SomeTextProperty}" />https://stackoverflow.com/questions/2228230
复制相似问题