private void ProgressAction(string text, Action <Action <bool> > action, bool needRefresh = false, bool cancel = true)
        {
            BlockUI?.Invoke(true);
            var messageView = new MessageView();

            messageView.HeaderText  = "Выполнение операции";
            messageView.ContentText = text;
            messageView.Icon        = Icon.Hourglass;
            if (cancel)
            {
                messageView.SetItems(new[] {
                    new MessageItemInfo("Отмена", (m) => _manager.CancelOperation(_selectedController), Icon.Cancel)
                });
            }
            messageView.StartAnimateProgress();
            var callback = new Action <bool>((success) => {
                this.Dispatcher.BeginInvoke(new Action(() => {
                    BlockUI?.Invoke(false);
                    messageView.StopAnimateProgress();
                    if (!success)
                    {
                        messageView.Icon        = Icon.Cancel;
                        messageView.ContentText = "Операция не выполнена.";
                    }
                    else
                    {
                        messageView.Icon        = Icon.Check;
                        messageView.ContentText = "Операция выполнена успешно!";
                        if (needRefresh)
                        {
                            UpdateControllers();
                        }
                    }
                    messageView.SetItems(new[] {
                        new MessageItemInfo("OK", (m) => messageView.Close())
                    });
                }));
            });

            messageView.Show(mainGrid);
            try
            {
                action?.Invoke(callback);
            }
            catch (Exception e)
            {
                MessageView.ShowMessage(e.Message, "Ошибка!", Icon.Bug, mainGrid);
            }
        }
Esempio n. 2
0
        public GenreSelectView()
        {
            InitializeComponent();
            this.itemView.Selectable = false;
            this.itemView.Icon       = LazuriteUI.Icons.Icon.HomeQuestion;
            SelectGenre(null);

            this.itemView.Click += (o, e) => {
                var messageView = new MessageView();
                messageView.ContentText = "Выберите тип отображаемых параметров:";
                messageView.HeaderText  = "Тип параметра узла Z-Wave";
                messageView.Icon        = LazuriteUI.Icons.Icon.HomeQuestion;
                messageView.SetItems(new[] {
                    CreateItemInfo(null, messageView),
                    CreateItemInfo(ValueGenre.Basic, messageView),
                    CreateItemInfo(ValueGenre.Config, messageView),
                    CreateItemInfo(ValueGenre.System, messageView),
                    CreateItemInfo(ValueGenre.User, messageView),
                });
                messageView.ShowInNewWindow(width: 800, showDialog: true);
            };
        }