我在WPF MVVM应用程序中有一个UserControl,它的可见性我想要绑定到其父级的DataContext中的属性。问题是孩子UC有它自己的DataContext。那么,如何使用子DataContext作为子UC的内部组件,并仍然使用父级DataContext进行可见性?将UserControl属性绑定到父数据上下文
因此,例如,父控件的DataContext的看起来像这样
class Parent
{
public Child Child { get; private set; }
public Visibility ChildVisible
{
get { return Visibility.Visible; }
}
}
在XAML,我该怎么配置能见度结合,使其指向Parent.ControlVisible,而不是Child.ControlVisible的?
<local:Child DataContext="{Binding Control}" Visibility="{Binding ControlVisible}" />
也许我错过了一些东西,但是ElementName给了我XAML中的父级UserControl,而不是视图模型中的父级DataContext,对吗? – user7134019
你说得对。可见性=“{绑定DataContext.Visibility,ElementName = parentControl}”> - 编辑答案 –
但是这将设置孩子的可见性等于父,这不是我想要做的。在这种情况下,父母总是可见的。我只是希望子级的可见性由父级数据上下文中的属性确定。 – user7134019