この単純な XAML レイアウトを使用して、DataContext をそれ自体に設定したウィンドウがあります。
<StackPanel>
<TextBlock Text="{Binding NameCLR}"/>
<TextBlock Text="{Binding NameDP}"/>
</StackPanel>
コードビハインドには、2つのプロパティNameCLR - CLR property
とNameDP - Dependency Property
.
private string NameCLR
{
get { return "CLRProperty"; }
}
private string NameDP
{
get { return (string)GetValue(NameDPProperty); }
set { SetValue(NameDPProperty, value); }
}
private static readonly DependencyProperty NameDPProperty =
DependencyProperty.Register("NameDP", typeof(string), typeof(MainWindow),
new UIPropertyMetadata("DPProperty"));
コード ビハインドは部分的なクラス定義であり、部分的なものは XAML であるためです。したがって、プライベート プロパティは XAML に表示される必要があると想定していました。しかし、驚いたことに、CLR と DP の動作は異なります。
Private Dependency プロパティにはアクセスできますが、Private CLR プロパティにはアクセスできません。
私は出力を得ました -
DPProperty
それ以外の
CLRProperty
DPProperty
DP と CLR プロパティでのこの異なる動作について誰かに教えてもらえますか?