【问题标题】:bind object to textbox c#将对象绑定到文本框 c#
【发布时间】:2010-09-29 22:09:31
【问题描述】:

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

我已经阅读了一些信息,似乎只能对数据库对象执行此操作。你能给我更多的信息吗?

【问题讨论】:

  • 这是在 winforms 还是 asp.net 中?您是否希望它是实时绑定(因此只要服务器上的某些内容发生更改,它就会在表单上更改)还是您希望在用户请求时加载该值?你想要数据库绑定还是别的什么?您知道 textbox.text 是文本(字符串),而不是对象,对吧?
  • 感谢 Drachenstern,Gaeraron 给了我想要的答案。

标签: c# winforms data-binding


【解决方案1】:

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

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

只要你想绑定它。绑定一般在Form_Load事件处理函数中完成,如果当时当然可以获取到对象,并且不同数据源没有复杂的逻辑。

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

【讨论】:

    【解决方案2】:

    如果您想在应用程序运行之间保留信息(即在您关闭应用程序时保存它并在它打开时重新出现),使用 Windows 窗体设计器是最简单的(我假设您正在编写WinForms 应用程序)将 TextBox 的值绑定到应用程序设置。 (This article on validation 提供 a screenshot 与您想要的类似。)(编辑:这是关于该主题的特殊文章:Exploring Secrets of Persistent Application Settings。这是我整理的 snippet page 讨论绑定。)

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

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

    【讨论】:

      猜你喜欢
      • 2018-11-16
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      • 2018-07-02
      • 2012-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多