У меня есть форма окна, где я подписываюсь на несколько событий.
FormClosing += save;
EncompassApplication.CurrentLoan.BeforeCommit += save;
Это форма, которая открывается в новой теме.
void save(object sender, EventArgs e)
{
updateItems();
}
Мой метод сохранения в основномпросто сохраняет текущее состояние моей формы в базе данных.
Моя форма отлично сохраняет данные при FormClosing, но EncompassApplication.CurrentLoan.BeforeCommit происходит из приложения, запущенного в другом потоке, и когда это событие вызывается, оно не работаетправильно.Это почти как если бы мой метод сохранения для этого события получал пустой экземпляр моей формы и перезаписывал любую информацию, заполненную в форме.
Как мне написать свой код, чтобы EncompassApplication.CurrentLoan.BeforeCommit получалтекущая версия моей формы для сохранения в базе данных?
Конструктор форм
public CheckList(bool canEdit)
{
this.canEdit = canEdit;
FormClosing += save;
FormClosing += updateStatus;
EncompassApplication.CurrentLoan.BeforeCommit += save;
password.MakeReadOnly();
SqlCredential sqlCred = new SqlCredential(username, password);
SqlConnection connection = new SqlConnection(connectionString, sqlCred);
connection.Open();
addHeaders(connection);
populateItems(connection);
connection.Close();
drawFooter();
isOpen = true;
InitializeComponent();
}