Как вызвать метод из другого окна в WPF

Вопрос:У меня есть два окна win1 для отображения списка пользователей, а другой win2 для добавления пользователя и у меня есть способ обновить сетку после удаления или обновления или добавить пользователя этот метод в win1 как я вызываю этот метод из win2 после добавления пользователя Извините за плохой английский Лучший ответ: Это довольно простой объектно-ориентированный дизайн.

Вопрос:

У меня есть два окна 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(); } }

Оцените статью
Добавить комментарий