private void ListWidgetRuntimeListBox_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { if (!(sender is ListBox)) { return; } object o = (sender as ListBox).SelectedItem; if (o == null) { return; } if (o is IRuntimeDeviceViewModel) { IDefectAcknowledgingService defectAcknowledgingService = _globalDefectAcknowledgingService.GetDefectAcknowledgingService( (o as IRuntimeDeviceViewModel).Model as IRuntimeDevice); if (!defectAcknowledgingService.IsFailNeedsAcknowledge()) { if (((ListBox)sender).ContextMenu != null) { ((ListBox)sender).ContextMenu = null; } return; } ((ListBox)sender).ContextMenu = new ContextMenu(); MenuItem ackMenuItem = new MenuItem { Header = "Квитировать неисправность" }; ackMenuItem.Click += (se, ea) => { defectAcknowledgingService.AcknowledgeFail(); }; ((ListBox)sender).ContextMenu.Items.Add(ackMenuItem); } }
private void CheckStateWidget() { if (_deviceViewModel == null) { return; } CheckAckFail(); if (!_defectAcknowledgingService.IsFailNeedsAcknowledge()) { DispatchService.Invoke((() => { switch (_deviceViewModel.StateWidget) { case WidgetState.Norm: _assotiatedBorder.Visibility = Visibility.Collapsed; break; case WidgetState.NoConnection: _assotiatedBorder.Visibility = Visibility.Visible; _assotiatedBorder.Background = Brushes.Silver; break; case WidgetState.Crash: _assotiatedBorder.Visibility = Visibility.Visible; _assotiatedBorder.Background = Brushes.Red; break; case WidgetState.Repair: _assotiatedBorder.Visibility = Visibility.Visible; _assotiatedBorder.Background = Brushes.Orange; break; } })); } else { if (_deviceViewModel.StateWidget == WidgetState.NoConnection) { DispatchService.Invoke((() => { _assotiatedBorder.Visibility = Visibility.Visible; _assotiatedBorder.Background = Brushes.Silver; })); } } }