Активировать второй экран после закрытия первого экрана

Я изучаю Caliburn.Micro, создавая это простое демонстрационное приложение. Я хочу сначала отобразить свой LoginView. Затем, после ввода учетных данных и закрытия / деактивации LoginView, я хочу отобразить свой UserView. Я использую метод TryClose () в LoginViewModel, чтобы закрыть экран. Когда я запускаю приведенный ниже код, e.WasClosed истинно, строка ActivateItem (new UserViewModel ()) выполняется, но LoginView повторно активируется.

Как мне заставить LoginView полностью закрыть / деактивировать и активировать UserView?

Вот код:

class MainViewModel : Conductor<object>.Collection.OneActive
{
    LoginViewModel lvm = new LoginViewModel();

    public MainViewModel()
    {
        ActivateItem(lvm);

        lvm.Deactivated += new EventHandler<DeactivationEventArgs>(lvm_Deactivated);
    }

    void lvm_Deactivated(object sender, DeactivationEventArgs e)
    {
        if (e.WasClosed)
        {
            ActivateItem(new UserViewModel());
        }
    }
}

person blueshift    schedule 02.06.2014    source источник


Ответы (1)


1-й деактивировать и закрыть просмотр входа

this.DeactivateItem(this.lvm, true);

Затем активируйте просмотр пользователя

ActivateItem(new UserViewModel());

окончательный код

this.DeactivateItem(this.lvm, true);
ActivateItem(new UserViewModel());
person Amin Budianto    schedule 06.06.2014