Вопрос:
У меня есть два окна win1 для отображения списка пользователей, а другой win2 для добавления пользователя
и у меня есть способ обновить сетку после удаления или обновления или добавить пользователя этот метод в
win1 как я вызываю этот метод из win2 после добавления пользователя
Извините за плохой английский
Лучший ответ:
Это довольно простой объектно-ориентированный дизайн. Поэтому вы хотите иметь возможность перезвонить из win2 в функцию в win1 после добавления пользователя в win2. Ну, есть ли win2 ссылка на объект win1? Если да, то как вы это называете. Если нет, то вам нужно дать ему один (передать его конструктору или что-то еще).
В качестве альтернативы, если вы используете инфраструктуру MVVM, вы можете пойти по пути использования Messenger. В большинстве инфраструктур MVVM они включены, и они очень полезны. Я рекомендую идти по этому маршруту, если это не какая-то броская программа, где водопровод не стоил бы.
Ответ №1
-
Вы можете использовать пользовательское событие в своем дочернем окне, чтобы родительский
окно прослушивает -
Вы можете определить делегат в дочернем окне
который ссылается на метод в родительском окне -
Вы можете использовать мессенджер какой-то формы: Вот пример:
http://blog.galasoft.ch/archive/2009/09/27/mvvm-light-toolkit-messenger-v2-beta.aspx
Ответ №2
Если вы открываете окно 2 из окна 1, вы можете сделать что-то вроде:
// code in Window1 public void AddNewUser() { Window2 window = new Window2(); if (window.ShowDialog() == true) { // Update DataGrid RefreshDataGrid(); } }