! comboBox.ValueMemberエラー新しい表示メンバーにバインドできませんパラメーター名:newDisplayMember



Combobox Valuemember Error Cannot Bind New Display Member Parameter Name



Webサイトから:http://www.myexception.cn/c-sharp/460535.html

助けて! ! comboBox.ValueMemberエラー新しい表示メンバーにバインドできませんパラメーター名:newDisplayMember
C#で書かれたWinform
2つのcomboBoxのリンク効果を実現するには、最初のcomboBoxから値を取得する必要がありますが、comboBox.selectedValueは常に空です。その後、Baiduで見つかった変更に応じて、タイトルに記載されているエラーが表示されます。コードの下に貼り付けます。

private void test_Load(object sender、EventArgs e)
{{
DataTable deptTable = db.GetDepartmentInfo()。Tables [0] // GetDepartmentInfo()は、テーブル内のすべてのデータを取得するためにビジネスレイヤーで作成したメソッドです。
int count = deptTable.Rows.Count
for(int i = 0 i
{{
string did = deptTable.Rows [i] [0] .ToString()
string dname = deptTable.Rows [i] [1] .ToString()

comboBoxDept.Items.Add(dname)
comboBoxDept.DataSource = comboBoxDept.Items
ComboBoxDept.ValueMember = 'did' //これはエラー行です。エラーメッセージは、新しい表示メンバー、パラメーター名にバインドできないことです:newDisplayMember
comboBoxDept.DisplayMember = 'dname'
}
}

1日交換しましたが、わかりませんでした! Guiqiuのボスが私を助けてくれて、私がそれに答えるのを手伝ってくれます〜ありがとう! T T

- - - 解決 - - - - - - - - - -
comboBoxDept.Items.Add(dname)
comboBoxDept.DataSource = comboBoxDept.Items
comboBoxDept.ValueMember = 'しました'

分かりませんでしたか? ?アイテムの追加中、データソースのアイテムのバインド中

もちろん、最も明白な位置は最後の文です。データソースは彼自身のアイテムなので、このアイテムはどこから来たのですか? ? (アイテムのタイプはObjectCollectionであり、did属性はありません)

ps:もう一度見てください、あなたがしたことは不必要なようです
データテーブルを直接バインドするだけです

comboBoxDept.DataSource = deptTable;
comboBoxDept.ValueMember = 'しました'
comboBoxDept.DisplayMember = 'dname'

- - - 解決 - - - - - - - - - -
データベース内のデータに加えていくつかのデータを追加する必要がある場合は、エンティティクラスの配列をバインドすることもできます。

クラスMyItem
{{
パブリック文字列はしました
パブリック文字列dname
}

...。

リストvtData = new List()
int count = deptTable.Rows.Count
for(int i = 0 i
{{
MyItem rItem = new MyItem()
rItem.did = deptTable.Rows [i] [0] .ToString()
rItem.dname = deptTable.Rows [i] [1] .ToString()

vtData.Add(rItem)
}

comboBoxDept.DataSource = vtData
comboBoxDept.ValueMember = 'しました'
comboBoxDept.DisplayMember = 'dname'


ComboBoxDept.DataSourceバインディングデータは、ループの外側に配置する必要があります。
転載された内容によると、以下は私の実践の要約です:



- - - 解決 - - - - - - - - - -
それでおしまい。 /////このメソッドを使用して解決します

private void test_Load(object sender, EventArgs e){ comboBoxDept.ValueMember = 'did' comboBoxDept.DisplayMember ='dname' comboBoxDept.DataSource = db.GetDepartmentInfo().Tables[0].DefaultView }

- - - 解決 - - - - - - - - - -
2、これも大丈夫です。System.Data.DataRowViewの表示の問題が解決しました/////このメソッドを使用して解決します



private void test_Load(object sender, EventArgs e) { DataTable deptTable = db.GetDepartmentInfo().Tables[0] comboBoxDept.DataSource = deptTable comboBoxDept.ValueMember = deptTable.Columns[0].ColumnName comboBoxDept.DisplayMember = deptTable.Columns[1].ColumnName }