Esempio n. 1
0
        public ComponentUIObject(IActorComponent target, IUIObject?parent, IViewModel model)
        {
            _target     = target;
            _parent     = parent;
            DataContext = model;

            _target.Unloaded.Subscribe(_ => ControlUnload?.Invoke());
        }
Esempio n. 2
0
 protected virtual void UserControlOnUnloaded()
 {
     try
     {
         Logger.Debug("Control Unloaded {Element}", UserControl.GetType());
         ControlUnload?.Invoke();
         BindLogic.CleanUp();
         Model.Actor.Tell(new UnloadEvent());
     }
     catch (Exception e)
     {
         Logger.Error(e, "Error On Unload User Control");
     }
 }
Esempio n. 3
0
        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();
            });
        }