WPF MVVM-совместимый способ открытия просмотров - PullRequest
0 голосов
/ 18 февраля 2019

Я хотел бы найти простой и совместимый с MVVM способ открыть новый вид из главного окна.

Я уже проработал некоторые инструкции и руководства.Но почему-то ничего не получалось, или это была смесь кода.

Я хотел бы открыть представление после нажатия кнопки и отредактировать в нем ObservableCollection.

Я уже создал шаблоны данных вApp.xaml и сопоставил ViewModels с соответствующими представлениями.Но я не знаю, как правильно открыть отдельное окно из MainWindow (MainViewModel) через ICommand для другой ViewModel.

1 Ответ

0 голосов
/ 18 февраля 2019

Вы не должны открывать окно непосредственно из MainWindow или MainWindowViewModel.Но модель представления может использовать сервис для открытия окна:

public class MainWindowViewModel
{
    private readonly IWindowService _service;
    public MainWindowViewModel (IWindowService service)
    {
        _service = service;
    }

    //...
    public void OpenWindowExecuted()
    {
        _service.ShowWindow();
    }
}

Сервис:

public interface IWindowService
{
    void ShowWindow();
}

public class WindowService : IWindowService
{
    public void ShowWindow();
    {
        Window window = new Window()
        window.Show();
    }
}

Вы можете легко смоделировать сервис в своих модульных тестах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...