我想将DependencyProperty
绑定到自定义按钮的标签上。
这是我的DependencyProperty
:
public static readonly DependencyProperty ButtonTextProperty = DependencyProperty.Register("ButtonText", typeof(string), typeof(MainMenuButton));
public string ButtonText
{
get { return (string)GetValue(ButtonTextProperty); }
set { SetValue(ButtonTextProperty, value); }
}
这是我尝试将值绑定到标签:
<TextBlock x:Name="lblButtonText" Margin="16,45.2465" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource Mode=Self}, Path=ButtonText}" VerticalAlignment="Center" TextAlignment="Right" Foreground="White" FontSize="17.333" FontWeight="Bold" FontFamily="Segoe UI Semibold" Height="26.053"/>
这种绑定我的DependencyProperties的方式在其他情况下工作了好几次,但我不知道为什么它这次不起作用?
我该如何解决这个问题?
答案 0 :(得分:1)
您要将绑定的来源设为Self
,Self
为TextBlock
,而TextBlock
没有名为ButtonText
的属性< / p>
您可能希望将绑定的来源设置为RelativeSource
类型的MyCustomButton
Text="{Binding Path=ButtonText,
RelativeSource={RelativeSource AncestorType={x:Type local:MyCustomButton}}}"
答案 1 :(得分:1)
或者你可以尝试像这样绑定:
首先给自定义控件命名:
<uc:myControl x:Name="ucName" ButtonText="MyText" .../>
(请记住导入xmlns,在本例中称为uc)
<Window xmlns:uc="NamespaceToMyUc" ...>
然后使用ElementName:
绑定到它<TextBlock Text="{Binding ElementName=ucName, Path=ButtonText} ... />