Window
のTitle
プロパティをこのWindow
のカスタムプロパティにバインドしようとしています。 XAMLは次のようになります。このような背景にあるカスタムプロパティにバインドコントロール/ウィンドウプロパティを設定し、既定値を設定します
Title="{Binding Path=WindowTitle, RelativeSource={RelativeSource Mode=Self}}"
コード:
public string WindowTitle
{
get
{
string title = (string)GetValue(WindowTitleProperty);
title = string.IsNullOrEmpty(title) ? "Editor" : title;
return title;
}
set
{
SetValue(WindowTitleProperty, value);
}
}
public static readonly DependencyProperty WindowTitleProperty =
DependencyProperty.Register("WindowTitle", typeof(string), typeof(Editor), new UIPropertyMetadata(null));
プロパティWindowTitle
が新しい値に設定した後にこれは良い作品。しかし残念ながら、ロード時にWindow
私はタイトルを取得していません。 WindowTitle
のゲッターは呼び出されません。私が言う限り、それは決して呼ばれることはありません。私は間違って何をしていますか? getterが(タイトルが正しく設定されている場合でも)呼び出されないのはなぜですか?他の方法でデフォルト値を設定することはできますか?
[WPF:XAMLプロパティ宣言がSetters経由で設定されていない可能性がありますか?](https://stackoverflow.com/questions/3836076/wpf-xaml-property-declarations-not-being-set-via-setters) – dymanoid
参照される質問はセッター(ゲッタではない)に関するものですが、理由は同じです。その答えをお読みください。 – dymanoid
詳細な説明は、[XAMLの読み込みと依存関係のプロパティ](https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/xaml-loading-and-dependency-properties)を参照してください。 – Clemens