У меня есть Button, и я связал эту кнопку, чтобы команда в ViewModel сообщила OpenWindowCommand. Когда я нажимаю кнопку, я хочу открыть новое окно. Но создание экземпляра окна и отображение окна из модели просмотра является нарушением MVVM. Я создал интерфейс, например
interface IWindowService
{
void showWindow(object dataContext);
}
и WindowService реализует этот интерфейс, например
class WindowService:IWindowService
{
public void showWindow(object dataContext)
{
ChildWindow window=new ChildWindow();
window.DataContext=dataContext;
window.Show();
}
}
В этом классе я указал ChildWindow. Таким образом, этот класс тесно связан с показом ChildWindow. Когда я хочу показать другое окно, я должен реализовать другой класс с тем же интерфейсом и логикой. Как я могу сделать этот класс общим, чтобы я мог передавать только экземпляр любого окна, и класс сможет открыть любое окно? Я не использую какие-либо встроенные MVVM-фреймворки. Я прочитал много статей о StackOverflow, но я не смог найти решение для этого.