1

我想将 my 绑定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 的方式在其他情况下工作了几次,但我不知道为什么这次它不起作用?

我怎么解决这个问题?

4

2 回答 2

1

您正在将绑定源设置为Self, 并且SelfTextBlock, 并且TextBlock没有名为ButtonText

您可能希望将绑定源设置RelativeSource为类型MyCustomButton

Text="{Binding Path=ButtonText,
    RelativeSource={RelativeSource AncestorType={x:Type local:MyCustomButton}}}"
于 2012-09-28T14:54:47.167 回答
1

或者,您可以尝试像这样绑定:

首先为您的自定义控件命名:

<uc:myControl x:Name="ucName" ButtonText="MyText" .../>

(记得导入 xmlns,在本例中称为 uc)

<Window xmlns:uc="NamespaceToMyUc" ...>

然后使用 ElementName 绑定到它:

<TextBlock Text="{Binding ElementName=ucName, Path=ButtonText} ... />
于 2012-09-28T15:06:39.397 回答