#c# #wpf #windows #datagrid
#c# #wpf #Windows #datagrid
Вопрос:
У меня есть главное окно, в котором есть datagrid и ссылка для импорта данных. Когда пользователь нажимает на ссылку, он должен просмотреть, и пусть пользователь выбирает файл для импорта. И это открывает другое окно, чтобы показать успешный импорт данных в базу данных.
Теперь я хочу показать данные в datagrid в главном окне. Итак, в основном я хочу сбросить главное окно, чтобы оно могло отображать импортированные данные в WPF.
Я попытался вызвать внутреннюю функцию (главного окна), чтобы закрыть () и инициализировать и привязать данные к таблице данных. Но, похоже, это не работает.
Есть ли какой-нибудь простой способ сделать это?
Комментарии:
1. на самом деле есть ли какой-либо способ обновить datagrid с коллекцией или обновить, что коллекция была изменена?
2. Думаю, я думал о INotifyCollectionChanged.
Ответ №1:
в зависимости от способа настройки привязки данных для datagrid, вы могли бы просто вызвать ResetBindings в соответствующем источнике привязки.
итак, допустим, у вас есть bindingsource b в вашем главном окне, и ваша datagrid или любой другой элемент управления привязан к этому bindingsource. для свойства datasource в b задано значение некоторой коллекции, содержащей ваши данные. если вы хотите «обновить» все элементы управления, привязанные к b, просто вызовите ResetBindings на b.
вы также могли бы использовать коллекцию, которая реализует IBindingList, которая уведомляла бы ваш bindingsource о добавлении элементов и т.д.
Ответ №2:
Просто используйте привязку к данным и обновите исходный код. Используете ли вы сериализуемый класс, который реализует INotifyPropertyChanged? Для работы с привязкой данных необходимо реализовать INotify.
Также загляните в NavigationWindow и страницы. Это упрощает создание приложений с одним окном.