【问题标题】:How do I show the display value for a combo box for the bound item?如何显示绑定项目的组合框的显示值?
【发布时间】:2018-09-17 18:54:34
【问题描述】:

我有一个 Windows 窗体组合框,它没有显示当前记录的显示值。下拉列表显示正确的值——Box、Skid、Tray——但文本框中的初始值是 ID;那就是我看到“3”而不是“托盘”。我错过了什么?

这是表格的值;每个项目都有一个容器 ID:

这里是组合框的值。这会将上面的图表链接到一个容器:

组合框中显示的值是 ID,而不是容器名称。这应该显示“Box, Box, Skid”,而是显示 3, 3, 2。

您可以看到下拉列表已正确填充:

以下是在设计器中创建组合框的方式。我还尝试将所选值设置为上面第一张图片中显示的数据集中的 containerID,但我得到的结果与将其留空相同。

设计器代码如下所示:

以下是数据源的设置方式:

这是获取组合框值的查询:

这是获取项目值的查询:

ContainersModel 类:

【问题讨论】:

  • 尝试使用 BindingList 而不是 List。
  • 尝试了一个 BindingList 并得到了相同的结果。感谢您的建议,如果您还有其他建议,请告诉我。
  • 你的 ContainersModel 类是什么样的?
  • 我将它添加到原始问题中。它有一个名为 containerID 的 int 和一个名为 containerName 的字符串。
  • 旁注:代码图片通常会吸引反对票。始终尝试将代码 sn-ps 作为文本发布。

标签: c# winforms combobox windows-forms-designer bindingsource


【解决方案1】:

我设法通过在组合框的属性窗口中使用 DataBindings 而不是在任务窗口中设置它们(使用组合框右上角的箭头)来解决此问题。

【讨论】:

    【解决方案2】:

    尝试使用 ComboBox.SelectedValue 属性而不是 Text 属性进行数据绑定。 SelectedValue 属性值与 ValueMember 字段相关联。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 2013-01-07
      • 2014-01-09
      相关资源
      最近更新 更多