Esempio n. 1
0
        private void StateDescriptionChanged(InternalBusyState state, string value)
        {
            lock (_locker)
            {
                var isTopState = _stack.Any() && _stack.Peek().AreEqual(state);
                if (!isTopState)
                {
                    return;
                }

                Description = value;

                SafeCall(() => OnPropertyChanged(nameof(Description)));
            }
        }
Esempio n. 2
0
        private void StateDisposed(InternalBusyState state)
        {
            lock (_locker)
            {
                _states.Remove(state);

                var isTopState = _stack.Any() && _stack.Peek().AreEqual(state);
                if (!isTopState)
                {
                    return;
                }

                _stack.Pop();
                UpdateTopState();
            }
        }
Esempio n. 3
0
        public IBusyState Push(string title = null, string description = null)
        {
            lock (_locker)
            {
                var state = new InternalBusyState(StateTitleChanged,
                                                  StateDescriptionChanged,
                                                  StateDisposed);
                _states.Add(state);
                _stack.Push(state);

                state.Title       = title;
                state.Description = description;

                UpdateTopState();

                return(state);
            }
        }