2012-05-16 25 views
2

我有一个用户控件(UC),有时在一个窗口中,有时在一个选项卡中,有时在一个子窗口中。当它在窗口中时,我将窗口传递给视图模型。在UC中,我想检查UC的祖先中是否已经存在一个数据上下文(不是特定的窗口,因为它不知道它是否在窗口或选项卡中),以便我可以实例化视图模型。我该如何检查这个?如何检查DataContext是否存在进一步的视觉树?

回答

2

如果为可视化祖先设置了DataContext,则UC会继承它,因此您可以检查UC的DataContext是否为空。

+0

好的。就那么简单。谢谢 – Steve

+0

我花了一点时间来实现它,不幸的是它不工作。添加的UC的DataContext始终返回null,尽管它的父级(窗口)具有DataContext集。我可能会对可视化树的定义感到困惑,但我只是创建窗口,将其设置为datacontext,将uc添加为窗口内容,然后检查其datacontext。 – Steve

+0

@Steve,你在哪里检查UC的DataContext?如果你在构造函数中检查,UC尚未被添加到窗口,所以它不能有父级的DataContext ... –