在我的用户控件(类 LabeledBox )中,我添加了依赖属性,如下所示。
public static readonly DependencyProperty HorizontalProperty
= DependencyProperty.Register(
"Horizontal",
typeof (Orientation),
typeof (LabeledBox),
new PropertyMetadata(default(Orientation)));
public Orientation Horizontal
{
get { return (Orientation) GetValue(HorizontalProperty); }
set { SetValue(HorizontalProperty, value); }
}
但是,根据以下设置时,并没有给我任何行为上的差异。事实上,财产中的设定者并没有被召唤。我错过了什么?
<local:LabeledBox x:Name="Info field"
Description="Info"
Horizontal="Horizontal" />
有问题的组件有一个堆栈面板作为最外面的控件,它就像这样绑定。
<StackPanel Name="TheContainer" Orientation="{Binding Horizontal}">
也许我错误地完成了绑定?
答案 0 :(得分:1)
为您的UserControl
:
<UserControl .... x:Name="labeledBox">
并使用这样的绑定:
<StackPanel Name="TheContainer" Orientation="{Binding Horizontal, ElementName=labeledBox}">
答案 1 :(得分:1)
是的,您的Binding
不能很好地尝试将其更新为:
<StackPanel Name="TheContainer"
Orientation="{
Binding Horizontal,
RelativeSource={RelativeSource AncestorType=local:LabeledBox}}"/>