簡體   English   中英

對Silverlight用戶控件自定義屬性綁定的困惑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM