如何将绑定连接到(Winform)ComboBox 控件以从绑定源获取/设置控件中的选择?

     2023-04-11     59

关键词:

【中文标题】如何将绑定连接到(Winform)ComboBox 控件以从绑定源获取/设置控件中的选择?【英文标题】:How do I connect a binding to a (Winform) ComboBox control to get/set the selection in the control from the binding source? 【发布时间】:2021-09-20 06:13:34 【问题描述】:

我已经深入我的 google-fu 寻找答案。

首先,我不只是询问如何将组合框绑定到数据源。除非我有严重的理解差距,否则它不止于此。

在我的 Winform 上,左侧有一个 DataGridview,右侧有一个面板,其中包含左侧所选行的值。右侧的控件之一是我遇到问题的 ComboBox。我设置了绑定源和数据视图,右侧的其他控件运行良好,除了 ComboBox 控件。

与此 ComboBox 交互的用户应该看到诸如“Item ABC”和“Item EFG”之类的值,与它们相关的值可能是 1234 和 5678。如果这是一个完全未绑定的控件,我会放置一个对象数组中的项目。一旦我让它工作,我会从不同的来源加载它。

但是当我尝试 DataBindings.Add("??", dataview, "dataviewfield", ...) 时,我无法获得“??”的正确值。运行时调试显示“SelectedItem.Value”将是正确的选项,但是当我使用它时会出现“未找到”类型的异常。我也尝试过“SelectedValue”,但是没有用(调试显​​示它是 null 并且抛出不允许 null 的异常)。

如何通过 Binding 将该值直接放入 DataView?

设置 .DataSource 只会丢失项目并且根本没有帮助。

如何做到这一点?没有使 ComboBox 完全解除绑定,直接设置 selectedindex 并在所选索引更改时捕获值 - 不得不这样做似乎很笨重。

-老程序员

进一步说明:我进行了编辑以阐明 ComboBox 的位置。

我已经取得了进步(当然,只有在提出问题后,我的脑海中才会出现新的途径)。我开始想我可能需要一个自定义绑定适配器,所以开始用谷歌搜索。我发现一些样本可以满足我的需求。

最重要的问题是我没有在 ComboBox 上分配数据源,我只是在添加项目。当我创建一个两列数据集和几行(可能是我想的任何内容)并将其设置为 ComboBox 的 displaymember 和 valuemember 时,SelectedValue 是否开始显示一个值(而不是一直为 null)。

我认为这是问题所在。剩下的问题是让左侧在更改后重新显示/刷新。

【问题讨论】:

您已经解释了很多,但仍不清楚您面临的确切问题是什么。如果您分享相关代码并解释如何重现该问题,这将有所帮助...DataBindings.Add("??", dataview, "dataviewfield", ...)不清楚何时执行此代码以及您为什么编写这行代码...请添加一些清晰的细节与问题中的相关代码。 【参考方案1】:

在为 DataGridView 和 bindingsource 加载数据源时,尝试让它们共享同一个列表:

BindingSource1.Datasource = dataset
DataGridView.Datasource = BindingSource1

这应该意味着对 bindingsource 中数据的任何更改也会更新 DataGridView。

要编辑所选对象,只需处理 SelectionChanged 事件并将 BindingSource1.Position 设置为数据源中所选对象的索引。

【讨论】:

我认为这个响应的方向是错误的。组合框位于依赖的“表单”(右面板)上。我能够让它工作,只是在右侧进行更改后刷新左侧有点困难(事件似乎都在错误的时间触发)。

如何将列表绑定到组合框?

...如何将列表绑定到组合框?【英文标题】:HowtobindaListtoaComboBox?【发布时间】:2010-10-1016:40:40【问题描述】:我想将BindingSource连接到类对象列表,然后将对象值连接到ComboBox。谁能建议怎么做?publicclassCountrypublicstringNameget;set;publ... 查看详情

winform中的listbox和combobox绑定数据用法实例

本文实例讲述了winform中的ListBox和ComboBox绑定数据用法。分享给大家供大家参考。具体实现方法如下:本例实现将集合数据绑定到ListBox和ComboBox控件,界面上显示某个属性的内容,代码如下:代码如下://…//自定义了Person类(有Name,Ag... 查看详情

如何使用 C# 连接到 Winform 应用程序中的 .sdf 文件?

】如何使用C#连接到Winform应用程序中的.sdf文件?【英文标题】:Howtoconnectto.sdffileinWinformapplicationusingC#?【发布时间】:2013-06-0411:30:06【问题描述】:我正在尝试将.sdf文件与我的winform连接。这就是我想要做的:SqlConnectioncon=newSqlCo... 查看详情

如何将 redux-form 绑定连接到表单的输入

】如何将redux-form绑定连接到表单的输入【英文标题】:Howtowireupredux-formbindingstotheform\'sinputs【发布时间】:2016-01-1307:28:15【问题描述】:redux-form是一个非常引人注目的库,用于为react应用程序中的表单提供redux绑定,它应该非常... 查看详情

数据绑定到 List - 查看 ListBox、ComboBox 中数据源的变化

】数据绑定到List-查看ListBox、ComboBox中数据源的变化【英文标题】:DatabindingtoList-SeechangesofdatasourceinListBox,ComboBox【发布时间】:2016-02-1023:26:02【问题描述】:我希望ListBox在我将对象删除或添加到我用作其DataSource的列表中时自动... 查看详情

winform控件combobox数据绑定

ComboBox下拉菜单控件,在数据库内的ComboBox应用的表进行修改时,如果是用的普通方法,显示数据一个方法,添加数据一个方法这样会导致程序后期维护难度增加,在这里使用数据绑定来让ComboBox数据实现根据数据库对应表数据显示,降低... 查看详情

winform中combobox控件之数据绑定

http://www.cnblogs.com/peterzb/archive/2009/05/30/1491923.html          下面介绍三种对comboBox绑定的方式,分别是泛型中IList和Dictionary,还有数据集DataTable 一、IList & 查看详情

如何将组合框中的 SelectedIndex 连接到列表连接字符串?

...到列表连接字符串?【英文标题】:HowtoconnectSelectedIndexinComboboxtoListConnectionstring?【发布时间】:2021-10-2506:25:33【问题描述】:如何将Combobox中的SelectedIndex连接到ListConnection字符串?这里是视图的实现:XAML:<ComboBoxName="cboxGDAserv 查看详情

如何将 Enter 键连接到提交按钮

】如何将Enter键连接到提交按钮【英文标题】:HowtoconnectEnterkeytoSubmitbutton【发布时间】:2013-09-1215:52:27【问题描述】:我正在构建一个数据输入表单,其中包含一个运行脚本的提交按钮。这工作正常,但我想采取额外的步骤。根... 查看详情

将套接字连接到环回远程端点,同时绑定到 LAN 源地址

...4-01-0216:15:35【问题描述】:我正在寻求一些帮助,以了解如何将出站套接字连接到127.x.x.x环回子网上的目标IP,同时绑定到分配给本地计算机的“真实”IP。我无法将套接字绑定到本地端点10.0.0.1(工作 查看详情

如何将 C++ dll 连接到 C# 项目?

...:我有一个用C++制作的dll文件,我需要将它连接到我的C#winform应用程序以使用不同的方法。我尝试像以前使用普通C#dll\'s一样引用它,但是由于dll的格式错误,所以有例外。之后,我尝试按照我的推荐使用DllImport,效果非常好。... 查看详情

C# - 如何检查用户的输入是不是存在于组合框中(使用的数据绑定项)

...定项)【英文标题】:C#-Howtocheckiftheuser\'sinputispresentintheComboBox(usedDataBoundItems)C#-如何检查用户的输入是否存在于组合框中(使用的数据绑定项)【发布时间】:2017-01-2613:26:34【问题描述】:我使用ComboBox中的Winform的DataBound项目将... 查看详情

winform绑定民族信息

ComboBox下拉菜单控件,在数据库内的ComboBox应用的表进行修改时,如果是用的普通方法,显示数据一个方法,添加数据一个方法这样会导致程序后期维护难度增加,在这里使用数据绑定来让ComboBox数据实现根据数据库对应表数据显示,降低... 查看详情

如何使用连接字符串从 Winform 应用程序连接到 Godaddy 中的 SQL Server 数据库

】如何使用连接字符串从Winform应用程序连接到Godaddy中的SQLServer数据库【英文标题】:HowtoconnecttoSQLServerdatabaseinGodaddyfromawinformapplicationusingconnectionstring【发布时间】:2019-09-1415:56:30【问题描述】:有一个Winforms应用程序,并希望... 查看详情

c#winform编程下combobox怎么给他绑定三个值?

我在ComboBox中给他绑定了DataSource:ComboBox.DataSource=dtable;ObComboBox.alueMember=dtable.Columns[0].ToString();ComboBox.DisplayMember=dtable.Columns[1].ToString();ObComboBox.ropDownHeight=300;在页面上选择时我可以拿到相对应的值,但现在问提了我还需要一个值,... 查看详情

如何通过 ObjectDataProvider 将 ComboBox 绑定到通用字典

】如何通过ObjectDataProvider将ComboBox绑定到通用字典【英文标题】:HowtobindaComboBoxtogenericdictionaryviaObjectDataProvider【发布时间】:2010-12-0900:23:37【问题描述】:我想在后面的代码中用键/值数据填充ComboBox,我有这个:XAML:<Windowx:Cl... 查看详情

c#的winform程序中,radiobutton的用法

我在窗体上放了三个radiobutton。还有一个combobox。我想在分别选择三个不同的radiobutton时,让combobox绑定不同的数据字段。显示不同的内容。但在运行的时候,点第一个radiobutton时,程序正常运行。当点第二个的radiobutton的时候,就... 查看详情

c#winform程序,combobox的问题

我向数据库插入几条数据,用ComboBox获取每条数据的ID,ID号使用标识自增,但是这样的话假如我删除其中某条数据,这个ID号就会消失了:例如:1、2、3,删除第二条数据后再插入一条,就会变成1、3、4了。怎样解决这个问题?... 查看详情