Родительская и дочерняя модель взаимодействия - PullRequest
0 голосов
/ 26 декабря 2010

можно ли установить что-то вроде владельца окна wpf в caliburn.micro?

У меня есть МОДЕЛЬ ПРОСМОТРА РОДИТЕЛЕЙ, из этой модели я открываю ЭКРАН ДЕТЕЙ {МОДЕЛЬ ПРОСМОТРА} этим методом:

    public IEnumerable<IResult> Open()
    {

        yield return new ShowWindow("ChatScreen")
            .InitializeWith(_service
            .DetailData(Account, _selectedFriend.Value.Nick),
            AvatarImage);
    }

Этот метод создает новое окно WPF WINDOW - CHILD SCREEN и инициализирует модель просмотра CHILD с некоторыми переменными.

Я хотел бы установить что-то вроде этого CHILD_SCREEN.PARENT = PARENT_VIEW_MODEL.

Я хотел быдобиться, если я закрою модель PARENT VIEW, чтобы она закрыла также все модели детей.

Также существует способ, как я могу проверить, активен / не активен экран в моем окне WPF из MAIN VIEW MODEL?

1 Ответ

0 голосов
/ 27 декабря 2010

Для этого вам нужно написать инфраструктуру.Я предполагаю, что ShowWindow использует Caliburn.Micro WindowManager для отображения окна?В этом случае вам нужно будет сохранить ссылку на каждое открытое окно.Является ли это требование отношения родитель / потомок только с целью закрытия всех потомков, когда родитель закрыт?Одним из вариантов будет реализация вашего собственного типа Conductor, который поддерживает список открытых окон, и ваших собственных типов IScreen / Screen, которые поддерживают состояние родителя / потомка.

...