【问题标题】:Bind c# WPF Checkbox to Application Setting and update setting [duplicate]将c#WPF复选框绑定到应用程序设置和更新设置[重复]
【发布时间】:2014-03-04 04:01:27
【问题描述】:

在使用 C# 的 WPF 应用程序中,我想将 CheckBox 的默认值绑定到应用程序设置的值(Properties.Settings.Default.OpenAutomatically 类型为 bool),这样当表单加载时,@987654325 @ 自动设置为从绑定的应用程序设置中读取的值。

其次,当CheckBox 的值发生变化时(通过用户点击它),bool 应用程序设置应该保持同步(如果选中则为 true,如果未选中则为 false)。

这似乎是 .NET 应该为您提供开箱即用的东西,而无需编写代码以在用户操作 UI 时保持设置同步。

提前感谢您的帮助。

【问题讨论】:

  • @kenny - 您引用的问题是关于将 ListBox 绑定到设置,这不是布尔值。如果我将 CheckBox 绑定到 bool,Setting 是否会随着 CheckBox 值的变化而自动更新?
  • 我认为您可以类似地绑定到布尔值,但我还没有尝试过。也许您的问题是您需要 .Save() 其他地方的设置。
  • 我认为您不会收到 INotify 事件...如果您担心的话。

标签: c# wpf checkbox


【解决方案1】:

您可以在 XAML 中引用命名空间 (YourNamespace.Properties.Settings) 并绑定到设置成员,但不会有更改通知(因为设置不实现任何类型的更改通知)所以如果您直接绑定到它您将获得存储在“设置”中的值,但您将无法通过简单地选中或取消选中复选框来更新您的设置......虽然我不能 100% 确定使用调用Settings.Default.Save()方法的触发器和Interactivity/Interactions...

我认为您必须使用 ViewModel,将您的 CheckBox 绑定到该 ViewModel 中的属性,并且当属性更改(或单击保存按钮)时,从您的设置中调用 Settings.Default.Save() 方法ViewModel ......我就是这样做的,但同样,我从来没有尝试过在视图中使用触发器来调用 Save() 方法,因为我通常有很多设置,即使有可能我也不想要所有这些无论如何,我的 XAML 中的触发器和方法调用...

【讨论】:

    猜你喜欢
    • 2017-06-19
    • 1970-01-01
    • 2014-10-30
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多