という名前の UserControl がthisUserControlあり、次の XAML コードに示すように 2 つのコントロールがあります。
<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。this(提供されていない場合はデフォルトであるはずだと思いましたElementName)
また、他のコードを使用して、この UserControl の顧客プロパティを定義しました。
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ますか?