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); } }
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); }; }