Как передавать выбранную запись в DataGrid между страницами и окнами?

Рейтинг: 0Ответов: 1Опубликовано: 30.06.2023

Не знаю как правильно сформулировать вопрос (не хватает опыта). Боюсь сделать ещё хуже. Поэтому просто напишу, что я хочу сделать, и что я уже сделал.

Например. Я создал модели классов employee и customers. Они содержат атрибуты name, age, phone (ну и т.д.). Затем я вывел все записи классов в два DataGrid (dgEmployee, dgCustomers) окна MainWindow.

Как мне передать/вывести, выбранную в одном из DataGrid'ов, запись в textbox'ы на странице page1, которая вызывается из окна Window2 после выбора записи и нажатия кнопки Add в MainWindow ? При этом окно Window2 также может иметь страницы page2,page3,page4, которые выполняют совершенно другую работу, например обрабатывают классы cars, models и тому подобное (не имеет значения).

По сути делаю приложения для редактирования таблиц c данными, где есть 2 окна - главное и второстепенное. На главном окне отображаются таблицы. Второстепенное окно выводит страницы, которые содержат в себе элементы для редактирования выбранной записи таблицы. Для каждой таблицы своя страница т.к. они очень разные (не такие, что в примере).

Возможно, я вообще не правильно всё делаю. Дайте знать если это так.

Ответы

▲ 1Принят

Используйте коллекции и привязки данных.

Выбранный элемент можно отслеживать через созданный по умолчанию CollectionView при включенной настройке таблицы IsSynchronizedWithCurrentItem, это поддерживается нативно привязками в формате {Binding Collection/ItemProperty}.