【问题标题】:How to two-way bind object to combo Box in windows application如何在Windows应用程序中将对象双向绑定到组合框
【发布时间】:2011-11-15 11:53:46
【问题描述】:

我有一个包含对象列表和组合框的 Windows 应用程序项目。如何以两种方式将此对象绑定到组合框。两种方式我的意思是当我在列表中添加一些元素时,组合框数据源应该自动改变。

【问题讨论】:

  • 这是 WPF 吗?你有一些代码吗?
  • 不,不是 WPF.. 只是 Windows 窗体类型的应用程序

标签: c# winforms data-binding


【解决方案1】:

List<T> 不会做这项工作,你想要BindingList<T>

【讨论】:

  • 我记得当我开始使用 .net 时,我也为那个问题挠头。
【解决方案2】:

也许您可以使用 ObservableCollection 作为 ListItems 源。然后,将新项目添加到此 Collection 中,它应该会更新 List 和原始 DataSource。

【讨论】:

    【解决方案3】:

    我不得不同意 zapico - 稍微了解一下可观察的集合。 虽然,您总是可以只使用事件处理程序,例如选定的项目索引更改!?由于我目前正在学习 ASP,因此我不确定 winforms 上组合框的事件处理程序的正确名称。

    【讨论】:

      【解决方案4】:

      如果您的 Windows 应用程序使用“Windows 窗体”,则组合框有一个 DataSource 属性,您可以使用它来绑定到数据源和一个 DisplayMember 属性,您可以使用可用于在文本框中显示字段。可以在这里找到一个例子:

      http://msdn.microsoft.com/en-us/library/w67sdsex.aspx

      如果您的 Windows 应用程序使用 WPF,则 ComboBox 有一个 ItemsSource 属性和一个 SelectedItem 属性,可用于绑定。下面深入探讨如何在 WPF 中处理它:

      http://www.garvander.com/wpf/

      【讨论】:

      • 它是 Windows 窗体,我完全按照这里写的,但没有运气。我将 List 添加到 combobox.DataSource 中。但是在 List 中添加对象后,组合框没有改变,即使在 Combobox_DatasourceChange 我写了 combobox.refresh();仍然没有运气。
      • 您可以尝试使用组合框中的 DataSource 属性的 ObservableCollection。
      猜你喜欢
      • 2013-10-04
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2017-05-25
      • 1970-01-01
      • 1970-01-01
      • 2012-11-12
      • 1970-01-01
      相关资源
      最近更新 更多