如何将两个组合框的选定项与单个数据源分开?

Posted

技术标签:

【中文标题】如何将两个组合框的选定项与单个数据源分开?【英文标题】:How to separate the selected item of two combobox with a single DataSource? 【发布时间】:2010-12-16 08:06:00 【问题描述】:

在一个表单上,我有两个具有相同数据源的组合框(它们的元素列表相同)。当用户在其中一个控件中选择一项时,另一个控件的选定项也会被修改。这不是我想要的。

我希望两个列表都填充相同的数据源(就像我目前所做的那样),但我希望他们选择的项目彼此独立。

我该怎么做?

【问题讨论】:

【参考方案1】:

或者你可以使用...

var dataSource = new[]  "item1", "item2", "item3" ;
comboBox1.DataSource = dataSource;
comboBox2.BindingContext = new BindingContext();
comboBox2.DataSource = dataSource;

【讨论】:

他们甚至做得很好。尽管我认为自动同步行为令人震惊,但它仍然表明使用此框架时必须使用 RTFM。【参考方案2】:

您需要创建数据源的两个不同实例。为此,您可以使用ToArray 扩展方法:

var dataSource = new string[]  "item1", "item2", "item3" ;
comboBox1.DataSource = dataSource.ToArray();
comboBox2.DataSource = dataSource.ToArray();

【讨论】:

以上是关于如何将两个组合框的选定项与单个数据源分开?的主要内容,如果未能解决你的问题,请参考以下文章

如何检索组合框的选定值(不是文本)

如何在C#中获得组合框的所有选定值

使用单个表单组合框中的多列作为 MS Access 中的查询参数

获取仅包含文本条目的组合框的选定文本的最简单方法是啥?

获取组合框的选定值

用于获取组合框的选定文本的 PHP 代码