Обновите сетку данных в окне WPF (не MainWindow) из другого. * Без использования MVVM * - PullRequest
1 голос
/ 09 апреля 2020

У меня есть Window1 , который содержит сетку данных, которая заполнена MYSQL База данных при загрузке Window1 , но для обновления есть это Window2 который содержит текстовые поля для сохранения новой информации в MYSQL База данных. Я могу обновить информацию после того, как открою и закрою Window2 , как показано ниже:

Window2.ShowDialog();

//refreshing datagrid

Mouse.OverrideCursor = System.Windows.Input.Cursors.AppStarting;
dtCustomers = AdminDB.Get_Table("SELECT id, name FROM engcustomers", db.MySqlCon);
dataGrid.DataContext = dtCustomers;
MessageBox.Show("The information has been updated correctly");
Mouse.OverrideCursor = System.Windows.Input.Cursors.Arrow;

И это прекрасно работает, проблема возникает, когда в Window2 я нажимаю кнопка «Отмена», потому что я не хочу ничего обновлять, но из-за моего кода запрос все равно выполняется. Вот почему мне нужна ваша поддержка / помощь для обновления сетки данных в Window1 из Window2 .

Не могли бы вы помочь мне?

Спасибо в заранее ребята!

1 Ответ

0 голосов
/ 09 апреля 2020

Метод ShowDialog() возвращает значение bool?, которое можно установить в Window2 перед его закрытием, а затем использовать, чтобы определить, была ли операция отменена в Window1:

bool? cancelled = Window2.ShowDialog();

if (cancelled != true)
{
    //refreshing datagrid

    Mouse.OverrideCursor = System.Windows.Input.Cursors.AppStarting;
    dtCustomers = AdminDB.Get_Table("SELECT id, name FROM engcustomers", db.MySqlCon);
    dataGrid.DataContext = dtCustomers;
    MessageBox.Show("The information has been updated correctly");
    Mouse.OverrideCursor = System.Windows.Input.Cursors.Arrow;
}

Окно2:

private void Cancel_Click(object sender, RoutedEventArgs e)
{
    this.DialogResult = true;
    Close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...