System.Data.DataRowView в CombocBox C#

#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 из базы данных, код которой я уже включил выше.