我正在进行自定义控制。
我有三个依赖属性,如下所述。 现在,根据控制高度,宽度和用户提供的范围,我必须计算一个值和 将其显示在自定义控件中。
我正在尝试使用多绑定,我可以绑定所有这三个值,我的多值转换器将对此进行一些计算 并返回适当的值。
问题是我不知道将样式中的这个值绑定为多值转换器绑定。
依赖属性:
public static readonly DependencyProperty ControlHeightProperty =
DependencyProperty.Register("ControlHeight", typeof(double), typeof
(TestControl), new PropertyMetadata(150D));
public double ControlHeight
{
get { return (double)GetValue(ControlHeightProperty); }
set { SetValue(ControlHeightProperty, value); }
}
public static readonly DependencyProperty ControlWidthProperty =
DependencyProperty.Register("ControlWidth", typeof (double), typeof
(TestControl), new PropertyMetadata(default(double)));
public double ControlWidth
{
get { return (double) GetValue(ControlWidthProperty); }
set { SetValue(ControlWidthProperty, value); }
}
public static readonly DependencyProperty RangeProperty =
DependencyProperty.Register("Range", typeof (double), typeof
(TestControl), new PropertyMetadata(default(double)));
public double Range
{
get { return (double) GetValue(RangeProperty); }
set { SetValue(RangeProperty, value); }
}
样式(我还没有写过绑定):如果属性可以使用与我相同的样式 使用ElementName绑定。但在这种情况下,释放可能是高度和宽度。但Range是一个直接依赖属性 我必须以我的风格绑定(我的意思是我无法进行ElementName绑定)
<TextBlock Grid.Row="1">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource
CalculateConverter}">
<Binding Path=""></Binding>
<Binding Path=""></Binding>
<Binding Path=""></Binding>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
有人可以帮助我吗?
谢谢&amp;的问候,
答案 0 :(得分:0)
您可以使用RelativeSource
。
<Binding Path="Range" RelativeSource="{RelativeSource AncestorType=UserControl, Mode=FindAncestor}"></Binding>