Создайте универсальную кнопку closewindow в MVVM
В настоящее время я портирую графический интерфейс из Unix X11 XWindows в WPF/MVVM. Этот графический интерфейс имеет главное окно, из которого можно открыть множество других подокон. Эти подокна имеют стандартный набор кнопок ("->Main", который выводит главное окно на передний план, "Print", "Events", который покажет все события, связанные с этим подокном,...). Одна из этих кнопок - "закрыть", которая просто закроет это окно.
Есть ли способ создать кнопку, которая сопоставляется с кнопкой Windows "x", которую я мог бы настроить как ресурс один раз, а затем просто привязать к ней?
Или есть общий способ создать кнопку без необходимости обновлять код каждого окна позади нее.
Я использую Foddy Weaver и Ninject. Кроме того, существует модель главного представления, с которой сопоставляется большинство подокон (поскольку во многих подокнах отображается общая информация о состоянии), если это помогает (или усложняет!).
Что я уже пробовал:
Попробовал этот метод : Закрытие окна WPF с использованием MVVM и минимального кода- jkshay.com[^] но он не компилировался (возможно, это противоречит тому, как я сейчас делаю RelayCommands в примерах Angel6)
Никогда не мог заставить "GetTemplateChild", ища PART_CloseWindow (и некоторые другие имена, сейчас не помню) работать.
Многие примеры команд ретрансляции привязаны к одной переменной, но это не работает для одной модели представления, разделяемой между несколькими подокнами (закрыло бы их все)