这是可能的bind a property to an existing application setting using the designer,这样,我没有初始化我的表单时写类似利用VS.Net设计绑定自动更新应用程序设置
textBox.Text = Settings.Default.Name;
。
现在它看起来像绑定停在那里,即如果我改变我的设置的值,它不会更新我的文本框中的值,反之亦然。
这是正常的还是我错过了什么?
这是可能的bind a property to an existing application setting using the designer,这样,我没有初始化我的表单时写类似利用VS.Net设计绑定自动更新应用程序设置
textBox.Text = Settings.Default.Name;
。
现在它看起来像绑定停在那里,即如果我改变我的设置的值,它不会更新我的文本框中的值,反之亦然。
这是正常的还是我错过了什么?
我将解释如何在Visual Studio 2010的窗体上执行此操作。它在新版本中可能类似。
ApplicationSettings
点击...
按钮的(PropertyBinding)
选择whi ch设置你想要绑定的控件。
嗯,这取决于。
首先,我不确定您是否在说WPF或Windows窗体,所以我都不会假设。
其次,你不是“约束”任何东西。您正在取Name
的值,并将属性Text
设置为等于此值。你正在设置一个属性。这不会带来任何不可避免的将Name
财产与Text
财产链接在一起的魔法副作用。第三,您可以更改设置,但在保存它们之前,它们不会写回您的app.config。在Windows窗体应用程序,你必须做这样的事情:
在WPF中,你会使用正常的绑定语义(这意味着你避免将所有属性值的麻烦时闭馆) ,但您仍然需要关闭表单以便您可以保存()设置。
绑定:
<TextBox
xmlns:lol="clr-namespace:MyApplication.Settings"
Text="{Binding Name, Source={x:Static lol:Default}}" />
的保存()调用发生多与表格的例子,但你没有做的比调用保存()以外的任何其他。
更详细的教程这里有一个误解。我*不*写“textBox.Text = Settings.Default.Name;”感谢绑定(请参阅链接)。 我知道如果我想将更改保存到设置文件中,我必须专门调用“Settings.Default.Save();”。 – user276648 2010-08-20 05:51:04
如何保存,我发现如果我重新打开文本框并关闭我的应用程序时,旧值仍然存在? – Zapnologica 2016-01-27 09:10:42
我测试过使用停止调试按钮关闭应用程序,用户设置不会保存。您应该正确关闭应用程序(红色十字按钮)。 – 2016-01-27 09:54:35
是否有任何代码可以手动调用来保持设置?例如在文本更改监听器?或每10秒? – Zapnologica 2016-01-27 13:16:11