という名前の 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
ますか?