Я написал некоторый код, который заполняет элементы управления некоторыми данными из базы данных. Все работает нормально, если элементы управления помещены прямо в окно. Но как заполнить элементы управления, которые находятся внутри других элементов управления, таких как TabControls, GroupBoxes и т. Д.
Мой код выглядит так:
Некоторые окна:
private void LoadDataP()
{
if (ID.Length > 0)
{
if (baseButtons.LoadProcedureSelectName != string.Empty)
LoadData = SqlHelper.GetTable(baseButtons.LoadProcedureSelectName, new string[] { IdName, ID });
if (LoadData != null)
foreach (DataRow dr in LoadData.Rows)
{
SqlHelper.FillWindowControllsWithData(myGrid, dr);
}
}
}
В другом классе есть методы. Они выполняют основную работу:
public static void FillWindowControllsWithData(Grid windowGrid, DataRow dataRow)
{
foreach (Control ctrl in windowGrid.Children)
{
FillWindowControllsWithData(ctrl, dataRow);
}
}
public static void FillWindowControllsWithData(Control ctrl, DataRow dataRow)
{
if (ctrl.Name.IndexOf("db_") == 0)
{
if (ctrl is TextBox)
{
if (dataRow.Table.Columns.Contains(ctrl.Name.Substring(3)))
{
((TextBox)ctrl).Text = dataRow[ctrl.Name.Substring(3)].ToString();
}
}
} //end if
}
Так кто-нибудь знает, как заполнить данные в текстовом поле, которое находится в каком-то групповом окне или таб-контроле, у которого также есть дети?