我有一個只讀文本框在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));
}
}
調試我看到處理始終是空的。我的INotifyPropertyChanged錯誤實現?或者我無法使用Properties.Settings更新UI? 如何解決這個問題?謝謝。
控件綁定到Settings對象的屬性,* not *綁定到Window的屬性。所以在Window上調用PropertyChanged是沒有意義的。這些設置已經實現了INotifyPropertyChanged,你不需要手動去做。你的問題在別的地方,查看HB的回答 – 2012-08-12 17:41:56