protected virtual void UserControlOnLoaded() { Logger.Debug("Control Loaded {Element}", UserControl.GetType()); if (!Model.IsInitialized) { var parentOption = ControlBindLogic.FindParentDatacontext(UserControl); parentOption.Run( parent => parent.Actor.Tell(new InitParentViewModel(Model)), () => ViewModelSuperviser.Get(ActorApplication.ActorSystem) .Create(Model)); } Model.AwaitInit(() => Model.Actor.Tell(new InitEvent())); }
protected virtual void UserControlOnLoaded() { Logger.Debug("Control Loaded {Element}", UserControl.GetType()); ControlUnload?.Invoke(); if (!Model.IsInitialized) { var mayParent = ControlBindLogic.FindParentDatacontext(May(UserControl).Cast <TControl, DependencyObject>()); Match(mayParent, parent => Tell(parent.Actor, new InitParentViewModel(Model)), () => ViewModelSuperviser.Get(ActorApplication.Application.ActorSystem) .Create(Model)); } Model.AwaitInit(() => { Tell(Model.Actor, new InitEvent(UserControl.Key)); CommandManager.InvalidateRequerySuggested(); }); }