我无法在
<Usercontrol>
定义中直接绑定?行不起作用:
<UserControl>
<UserControl
<...>
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800"
Visibility="{Binding ControlVisibility, RelativeSource={RelativeSource AncestorType={x:Type local:TaskItemDisplayControl}}}">
<Grid x:Name="BaseGrid">
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='TaskForceSigma.UI.Controls.TaskItemDisplayControl', AncestorLevel='1''. BindingExpression:Path=ControlVisibility; DataItem=null; target element is 'TaskItemDisplayControl' (Name='RootTaskControl'); target property is 'Visibility' (type 'Visibility')
我最好的猜测是,当评估
<UserControl
<...>
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid x:Name="BaseGrid"
Visibility="{Binding ControlVisibility, RelativeSource={RelativeSource AncestorType={x:Type local:TaskItemDisplayControl}}}">
的定义时,尚不可用的相关绑定信息?
为了澄清,对于设计器中添加的两个控件以及代码实例化的控件都会发生此错误。 除非我将绑定添加到基本元素中,否则代码也永远不会碰到Control Visisible Getter内部的断点。
确定
<UserControl>
是您在这里显示的USERCONTROL类,与taskitemdisplayControl不是其自己的祖先。
用:
RelativeSource
abesides,这是不核心的,为什么您的控件将完全具有额外的可见性属性。