#c# #winforms
#c# #winforms
Вопрос:
Я работаю над приложением Windows forms. У меня есть два поля со списком, одно для выбора профиля, а другое для выбора типа матрицы. Каждый профиль содержит несколько матриц, которые необходимо отобразить в поле со списком и установить значение первой матрицы по умолчанию при загрузке формы.
Я установил источник данных и назначил свойства элемента DisplayMember и Значение для обоих полей со списком. Однако, когда форма загружается, во втором поле со списком, где должны быть перечислены различные типы матриц, у меня есть только System.Data.DataRowView для всех значений. Однако, когда я выбираю профиль из первого выпадающего списка, второе поле обновляется, и значения отображаются правильно.
Код для выпадающего списка профиля
ddProfile.DataSource = dtProfile; ddProfile.ValueMember = "ID"; ddProfile.DisplayMember = "Description"; ddProfile.Enabled = dtProfile.Rows.Count gt; 1; foreach (DataRow dr in dtProfile.Rows) { if (dr["Ordinal"].ToString() == "1") { ddProfile.SelectedValue = dr["ID"]; break; } } Code for the matrix comboBox DataTable dtMatrix = new DataTable(); dtMatrix = DBConnector.GetTable("RiskMatrixList", "*", "", $"Profile={ddProfile.SelectedValue}", DBConnector.ConnectionType.Templates); dtMatrix = DBConnector.GetTable($"SELECT * FROM RiskMatrixList WHERE Profile={ddProfile.SelectedValue}"); ddRiskMatrix.DataSource = dtMatrix; ddRiskMatrix.DisplayMember = "Description"; ddRiskMatrix.ValueMember = "ID"; ddRiskMatrix.Enabled = dtMatrix.Rows.Count gt; 1; foreach (DataRow dr in dtMatrix.Rows) { if (dr["IsDefault"].ToString() == "1") { ddRiskMatrix.SelectedValue = dr["ID"].ToString(); break; } } Why am I not getting the right values when the form loads?
Комментарии:
1. Как данные загружаются в выпадающий список в первый раз? Можете ли вы поделиться этим кодом?
2. Данные загружаются с использованием таблиц данных в качестве источника данных. Данные извлекаются в DataTable из базы данных, код которой я уже включил выше.