обновить содержимое WPG DataGrid после изменений в базе данных - PullRequest
0 голосов
/ 21 апреля 2020

Я подаю заявку по C# и технологии WPF.

У меня есть метод для обновления содержимого моей Datagrid:

dgContact.ItemsSource = db.ContactRepository.GetAllContact();

после каждого добавления или обновления, я вызываю этот метод , если я добавлю запись, в моей сетке появится новая запись. но если я обновлю запись, изменения не будут отображаться в моей сетке (изменено в БД).

как я могу обновить содержимое Datagrid по последним данным в БД?

спасибо

Ответы [ 2 ]

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

Вы можете привязать DataSrid ItemSource к ObservableCollection, попытаться внести изменения в базу данных, затем обновить ObservableCollection, и она уведомит, когда было внесено изменение.

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

Это зависит от типа структуры, которую возвращает ваш метод.

Если ваш метод возвращает не-ObservableCollection, то, что вы можете сделать, перед установкой DataGrid.ItemsSource для вашего метода, установите DataGrid1.ItemsSource = null. ; Таким образом, вы сообщаете системе WPF, что произошли изменения, и что ваша DataGrid будет обновлена, например:

private void Update_OnClick(object sender, RoutedEventArgs e) {
    this.DataGrid1.ItemsSource = null;
    this.DataGrid1.ItemsSource = db.ContactRepository.GetAllContact();
}

С другой стороны, если ваш метод возвращает ObservableCollection , просто установите свойство ItemsSource, как вы делали это раньше, и система WPF обнаружит это изменение.

Проверьте этот проект, чтобы вы могли проверить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...