我有一个可填充下拉列表并从BindingSource设置显示和值成员的函数,但是我不知道如何仅选择所选项目的值。

词典绑定源人口:

    public Dictionary<int, string> Get_List_of_ManualSchemes()
    {
        Dictionary<int, string> comboSource = new Dictionary<int, string>();

        using (SqlConnection cnn = new SqlConnection(connectionString))
        {
            cnn.Open();
            string query = "SELECT [idGMRScheme],[SchemeName] FROM [DBA_Admin].[dbo].[GMR_Schemes]";

            using (SqlCommand command = new SqlCommand(query, cnn))
            using (SqlDataReader reader = command.ExecuteReader())
                while (reader.Read())
                {
                    comboSource.Add((int)reader["idGMRScheme"], (string)reader["SchemeName"]);
                }
        }
        return comboSource;
    }


用它填充组合:

        public void Populate_ManualSchemes_Combolist(Dictionary<int, string> comboSource)
        {
            cb_SchemesManual.DataSource = new BindingSource(comboSource, null);
            cb_SchemesManual.ValueMember = "value";
            cb_SchemesManual.DisplayMember = "text";
        }


我尝试做:

cb_ManualSchemes.SelectedValue


当我尝试时,它返回显示的文本,而不是ID。

cb_ManualSchemes.SelectedText


它什么也没返回

最佳答案

因为您使用的字典是键值对的集合。显示成员和值成员必须匹配字典中某个项目的属性

尝试以下

 cb_SchemesManual.ValueMember = "Key";
 cb_SchemesManual.DisplayMember = "Value";

10-08 03:58