В моем проекте winform C# я использовал несколько пользовательских элементов управления. Здесь он содержит два параметра, как этогоДинамическое обновление usercontrol
Home > Person > Addperson
Home > Teacher > AddTeacher
Личность и Учитель содержит ListBox, которые отображают все лицо/учитель из базы данных. , когда я добавляю человека, используя Addcerson, данные введены успешно. Но когда я возвращаюсь к Лицо Это ничего не показывает. В то же время, если я вернусь домой и заберусь в AddTeacher, здесь из раскрывающегося списка я могу найти недавно добавленные данные.
Теперь, если я добавлю этого человека в качестве учителя и вернусь к Учителю, он ничего не покажет, кроме как данные фактически вставлены успешно. Тогда, если я закрою всю программу и снова открою, чем все будет показано правильно.
Все, что я хочу, это обновить те usercontrol как-то так, чтобы каждый раз, когда происходят какие-либо изменения, он мгновенно отображает это изменение без закрытия всей программы.
Я пробовал разные методы, но ни один из них не работает. Я попробовал метод обновления. Также попробовал с datasource=null
перед фактической декларацией источника данных.
Код для лица Listbox:
var personListDictionary = new Dictionary<int, string>();
SqlCommand prsonListCmd = new SqlCommand("SQL QUERY", Connection);
SqlDataReader dr = prsonListCmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
...
personListDictionary.Add(Key, Value);
}
}
PersonList.DisplayMember = "Value";
PersonList.ValueMember = "Key";
PersonList.DataSource = new BindingSource(personListDictionary, null);
Ну вы должны каким-то образом уведомить об этом лицо или пользовательские элементы управления учителя что они должны обновиться. Один из способов - поднять OnEntityAdded или что-то подобное в пользовательских элементах AddPerson и AddTeacher и обрабатывать их в Person или Teacher. – sventevit
@sventevit Я не уверен, что вы хотите сказать. Пожалуйста, объясните больше. Есть ли какой-либо конкретный метод для такого обновления? – Nabil