[英]Confusion on Silverlight user control custom property binding
我有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
設置一個名稱,以便我可以在ElementName=thisUserControl
使用它進行綁定。 (我認為如果沒有提供ElementName
,默認情況下應該this
)
我還為此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
?
Bindable(true)
是一種告訴GUI設計器屬性支持雙向綁定的方法。 但是,要實際實現雙向綁定,必須為該屬性實現INotifyPropertyChanged
。
此外,如果綁定中未提供ElementName
,則默認為綁定到DataContext
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.