Rosh@n Ответов: 1

Как вызвать icommand viewmodel сразу после закрытия окна с помощью панели инструментов в WPF MVVM?


Я назначил viewmodel в качестве datacontext для окна. Когда пользователь закрывает окно с помощью кнопки закрыть на панели инструментов, я хочу, чтобы он вызвал команду ICommand и связанную с ней функцию. Вам нужны какие-то предложения по этому поводу??

Я был бы признателен за любую форму предложения или помощи. Спасибо

Что я уже пробовал:

Я мог бы изменить состояние windowstate на none и создать пользовательскую панель инструментов, но тогда пользователь не сможет перетащить окно.

1 Ответов

Рейтинг:
1

Graeme_Grant

Обычно я подключаю событие закрытия в коде окна, а затем с помощью специального интерфейса получаю доступ к ViewModel из DataContext... Что-то вроде:

public partial class MainWindow
{
    public MainWindow() => Closing += OnClosing;

    private void OnClosing(object sender, CancelEventArgs e)
        => e.Cancel = ((IOnClosing)DataContext).Closing();

Там всего пара строк кода. (Да, проверка приведения не включена в этот пример)

Но если вы ищете более чистое решение для работы с командой, вот одно из них: Поведение для поддержки закрытия окна в WPF[^]

Оба решения справедливы.


Rosh@n

спасибо за ваше предложение.