Обойти круговую зависимость

Как насчет попытки Apache Camel,

http://camel.apache.org/ftp2.html

0
задан steve 16 January 2019 в 12:10
поделиться

1 ответ

Модель представления не должна создавать экземпляры окон. Что вы могли бы сделать, так это внедрить вашу модель представления в службу, отвечающую за создание окон, например:

public class MainWindowViewModel
{
    private readonly IWindowService _windowService;

    public MainWindowViewModel(IWindowService windowService)
    {
        _windowService = windowService;
        CreateWindowCommand = new DelegateCommand(() =>
        {
            _windowService.CreateWindow(new SomeViewModel());
        });
    }

    public ICommand CreateWindowCommand { get; }
}

Определить интерфейс IWindowService в проекте модели представления и конкретную реализацию этого в просмотр / презентация проекта:

public class WindowService : IWindowService
{
    public void CreateWindow(SomeViewModel vm)
    {
        Window win = new Window();
        win.DataContext = vm;
        win.Show();
    }
}
0
ответ дан mm8 16 January 2019 в 12:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: