Example #1
0
        /// <summary>
        /// BaseViewModel constructor.
        /// </summary>
        protected BaseViewModel()
        {
            _onInitSubscribers      = new List <Guid>();
            _onAppearingSubscribers = new List <Guid>();
            Resolver            = Application.Current.Resolve <IServiceResolver>();
            Lifecycle           = LifecycleState.Initiate;
            InitCommand         = new XamAsyncCommand(() => { });
            AppearingCommand    = new XamAsyncCommand(() => { });
            DisappearingCommand = new XamAsyncCommand(() => { });
            CloseCommand        = new XamAsyncCommand(async() => await CloseAsync());
            LoadCommand         = new XamAsyncCommand(() => { });
            UnloadCommand       = new XamAsyncCommand(() => { });
            FocusCommand        = new Command(() => { });
            BackButtonPressed   = new BackButtonCommand(x => Close());

            ExecuteCommand = async command =>
            {
                switch (command)
                {
                case IXamAsyncCommand a:
                    await a.ExecuteAsync();

                    break;

                default:
                    command?.Execute(null);
                    break;
                }
            };
        }
Example #2
0
 /// <summary>
 /// Execute command asynchronously.
 /// </summary>
 /// <param name="command">command</param>
 /// <returns>task</returns>
 public static Task ExecuteAsync(this ICommand command)
 {
     return(command switch
     {
         XamAsyncCommand cmd0 => cmd0.ExecuteAsync(),
         XamAsyncCommand <object> cmd1 => cmd1.ExecuteAsync(null),
         _ => throw new InvalidOperationException(nameof(command))
     });