Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как передавать класс окна в MVVM???

Avataria 2 Ученик (51), на голосовании 4 месяца назад
Допустим во ViewModel есть метод который открывает окно ShowWindow<T>();
Как передать туда название окна, ведь ViewModel нельзя давать ссылку на View...
Есть Zoo.xaml вот как его передать во ViewModel, если нельзя давать ссылку на View. Сервис для управления окнами есть и метод открытия окна оттуда.
Голосование за лучший ответ
Павел Быков Ученик (148) 5 месяцев назад
Попробуйте через реализацию интерфейса. Определите интерфейс, который содержит методы, необходимые для управления окном, и реализуйте этот интерфейс в классе окна. Затем передайте экземпляр этого интерфейса в ViewModel.
public interface IWindowService
{
void CloseWindow();
void ShowWindow();
// Другие методы, если необходимо
}

public class MainWindow : Window, IWindowService
{
// Реализация методов интерфейса
}

public class MainViewModel
{
private readonly IWindowService _windowService;

public MainViewModel(IWindowService windowService)
{
_windowService = windowService;
}

public void CloseApplication()
{
_windowService.CloseWindow();
}
}
Avataria 2Ученик (51) 5 месяцев назад
обязательно это прописывать в окно.xaml чисто на стороне ViewModel это сделать нельзя?
Павел Быков Ученик (148) Avataria 2, Такое не знаю, если честно
Похожие вопросы