我的 Properties/Settings.settings 文件中有一个 bool 设置,它基本上存储每个用户的“从右到左”或“从左到右”显示模式。
我的功能区中有一个复选框,我已将其绑定(bind)到该值。然而,绑定(bind)似乎只有一种方式。有什么方法可以实现这两种方式,而无需编写代码来保留设置?
澄清
我已成功将应用程序配置为在首次加载时绑定(bind)到设置。问题是这是一种单向绑定(bind),即当设置更改时 UI 会更新,但当 UI 更改时设置不会更改。
因此我的问题...如何配置针对用户设置的双向绑定(bind)?
我可以编写事件处理程序来手动完成所有这些操作,但我认为这违背了使用绑定(bind)的意义。
最佳答案
好吧,经过一番挖掘后,您似乎需要在某种程度上实现这一点,但它可能并不像您希望的那样干净。基本上,您的绑定(bind)对象必须实现 INotifyPropertyChanged
(这是一直给我带来麻烦的部分...我认为 CheckBox 必须实现此接口(interface),但它是复选框绑定(bind)到的对象) ,Properties.Settings.Default
就是这样做的。因此,您需要做的就是以下内容
Hook Property.Settings.Default 的 OnPropertyChanged 事件:
Properties.Settings.Default.PropertyChanged +=
new PropertyChangedEventHandler(Default_PropertyChanged);
然后,当任何绑定(bind)属性发生更改时,只需调用 Save 方法即可:
void Default_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
Properties.Settings.Default.Save();
}
基本上,当您绑定(bind)对象时,它会相应地更改Settings.Default.[Setting]
。它只是不会对每个更改调用 Save
。您必须实现这部分内容。
关于c# - 两种方式绑定(bind)到用户设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9873308/