将对象绑定到文本框c#

时间:2010-09-29 22:09:32

标签: c# winforms data-binding

我是c#的新手,我正在寻找一种方法将我自己的对象的属性绑定到常规形式的文本框的值(每次输入值时重置对象的属性变化)。

我已经阅读了一些信息,似乎只能对数据库对象进行此操作。你能给我一些额外的信息。

2 个答案:

答案 0 :(得分:13)

假设您的意思是Windows窗体文本框, 说

textBox.DataBindings.Add("Text", obj, "SomeProperty");

每当你想要绑定它时。绑定通常在Form_Load事件处理程序中完成,如果当时可以获取对象,并且没有具有不同数据源的复杂逻辑。

请注意,这只能在一个方向上起作用(更改TextBox会产生对象属性更改)。要反过来同步,对象必须实现INotifyPropertyChanged接口。

答案 1 :(得分:1)

如果要在应用程序运行之间保留信息(即在关闭应用程序时将其保存并在打开时重新显示),最简单的方法是使用Windows窗体设计器(我假设您正在编写WinForms app)将TextBox的值绑定到应用程序设置。 (This article on validation提供a screenshot类似于您想要的内容。)(编辑:以下是有关该主题的特殊文章:Exploring Secrets of Persistent Application Settings。这是我放在一起的snippet page讨论约束力。)

这种绑定是自动双向的,与@gaearon提到的绑定不同。您只需确保在关闭应用程序之前保存设置(即Properties.Settings.Default.Save())(例如,作为Form.Closing事件的事件处理程序)。

如果您需要更多说明,请发表评论。