Chr*_*eis 3 .net sorting combobox selectedvalue
我有2个组合框,每个组合都绑定到相同的DataTable,如下所示:
channelTypeCB.DataSource = SynergyData.ds.Tables["ChannelTypes"];
channelTypeCB.DisplayMember = "channelType";
channelTypeCB.ValueMember = "channelTypeID";
channelTypeCB.BindingContext = new BindingContext();
newSKChanTypeCB.DataSource = SynergyData.ds.Tables["ChannelTypes"];
newSKChanTypeCB.DisplayMember = "channelType";
newSKChanTypeCB.ValueMember = "channelTypeID";
newSKChanTypeCB.BindingContext = new BindingContext();
Run Code Online (Sandbox Code Playgroud)
当我单击按钮将记录插入数据库时,我使用channelType.SelectedValue ...返回不正确的值.我觉得它与使用ComboBox排序(我在设计视图中设置控件的属性中)有关.有人遇到过这个问题吗?
这是使用C#为winforms应用程序编程的
编辑:
例如,我的Datatable存储的值如下:
Run Code Online (Sandbox Code Playgroud)channelType channelTypeID Web 2 Mailer 3 Catalog 4
这在组合框中排序,当我选择第一个项目(排序时为"目录")时,SelectedValue返回2,当我选择第二个项目时它返回3 ....我本来希望"目录"到返回4
MSDN ComboBox.Sorted
可能与此有关
尝试在数据绑定控件上设置Sorted属性会引发ArgumentException.您必须使用基础数据模型对数据进行排序.
(虽然没有得到任何错误)
因此,我没有使用ComboBox.sort,而是对DataTable的DefaultView进行排序:
SynergyData.ds.Tables["ChannelTypes"].DefaultView.Sort = "channelType";
Run Code Online (Sandbox Code Playgroud)
不相信这是最好的方法,但它有效,现在selectedValue返回正确的东西