UI に読み取り専用のテキスト ボックスがあり、Properties.Settings.Default.MyVar にバインドされています。ウィンドウが開いていると、バインドが正しく値を取得します。しかし、ユーザーがボタンをクリックすると (このボタンは Properties.Setting.Default.MyVar を変更します)、テキストボックスは更新されません (ただし、ウィンドウを閉じて再度開くと、新しい値が取得されます)。私はすでに UpdataSourceTrigger を試していますが、うまくいきません。
私のxml:
<TextBox IsReadOnly="True"
Text="{Binding Source={StaticResource settings}, Path=MyVar}"/>
<Button Content="..." Click="ChangeMyVar_Click"/>
ウィンドウのコード
public partial class ConfigureWindow : Window, INotifyPropertyChanged
{
public ConfigureWindow()
{
InitializeComponent();
}
private void ChangeMyVar_Click(object sender, RoutedEventArgs e)
{
Properties.Settings.Default.MyVar = "Changed";
Properties.Settings.Default.Save();
OnPropertyChanged("MyVar");
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string info)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(info));
}
}
デバッグ ハンドラーは常に null です。INotifyPropertyChanged の実装が間違っていますか? または、Properties.Settings を使用して UI を更新できませんか? それを修正する方法は?ありがとう。