Я обычно делаю веб-материал, поэтому прошу прощения за незнание темы.Самый элегантный способ установить ComboBox по значению
Я пытаюсь сделать Нагрузку выпадающим из, как это коды:
using (var con = new SqlConnection(ConStr)) {
try {
var dt = new DataTable();
var cmd = new SqlCommand("usp_SelectContactDropDown", con) {
CommandType = CommandType.StoredProcedure };
var adapter = new SqlDataAdapter {SelectCommand = cmd};
adapter.Fill(dt);
((ComboBox) Controls.Find(ddContact, true)[0]).DataSource = dt;
((ComboBox) Controls.Find(ddContact, true)[0]).DisplayMember = "DisplayText";
((ComboBox) Controls.Find(ddContact, true)[0]).ValueMember = "ID";
((ComboBox) Controls.Find(ddContact, true)[0]).SelectedIndex = -1;
}
catch (Exception ex) { MessageBox.Show(ex.ToString()); }
finally { /* Handle the error*/ }
Где ID является Int. После этого я хочу установить выбранное значение поля со списком на основе элемента значения. Однако это кажется более сложным, чем я думаю, что это должно быть. В жереха это довольно просто
ddContact.SelectedValue = o.fk_ContactID.ToString();
Я проверил некоторые другие вопросы (Q1, Q2), которые, как представляется, в виду установить значение элементом отображения. Какой самый элегантный способ сделать это? Заранее спасибо.
Почему вы используете управления .Найти? прямой синтаксис (если в том же классе) работает – Steve
Просто не используйте 'ToString()'. В отличие от ASP.NET, который использует строки, WinForms использует чувствительное к типу сравнение. –
@Steve, если быть честным, он сказал, что он не знает о теме - и поэтому ваш комментарий довольно спорный :) –