我有 UserControl,命名为thisUserControl
,它有两个控件,如以下 XAML 代码所示:
<UserControl
...
x:Name="thisUserControl">
<StackPanel x:Name="LayoutRoot">
<Button x:Name="btnChangeString" Content="Change String" Click="btnChangeString_Click" />
<TextBlock Text="{Binding Path=StringProperty, ElementName=thisUserControl}" />
</StackPanel>
</UserControl>
顺便说一句,我不知道为什么我必须设置一个名称,UserControl
以便我可以将它用于 Binding in ElementName=thisUserControl
。(我认为如果没有提供它应该是this
默认的)ElementName
我还为这个 UserControl 定义了 customer 属性,以及一些其他代码:
private string sp = "A String Here";
[Bindable(true)]
public string StringProperty
{
get { return sp; }
set { sp = value; }
}
private void btnChangeString_Click(object sender, RoutedEventArgs e)
{
StringProperty = "Something Else";
}
当我编译并运行它时,单击“更改字符串”按钮,没有任何反应。
似乎Bindable(true)
根本不起作用。这是什么Bindable(true)
意思?
有没有一种简单的方法可以使自定义属性可绑定?让这个 UserControl 继承INotifyPropertyChanged
?或使用DependencyProperty
?