private void MarkLine(GlobalFlags.GridLineTypes lineType, int lineIndex, bool needMassUpdate) { if (needMassUpdate) { BaseGrid.UpdateLayout(); BaseGrid.ScrollIntoView(BaseGrid.Items[lineIndex]); } var lvitem = BaseGrid.ItemContainerGenerator.ContainerFromIndex(lineIndex) as ListViewItem; if (lvitem != null) { switch (lineType) { case GlobalFlags.GridLineTypes.Error: Dispatcher.Invoke(new Action(() => lvitem.Foreground = Brushes.Red)); break; case GlobalFlags.GridLineTypes.Running: Dispatcher.Invoke(new Action(() => lvitem.Foreground = Brushes.Green)); break; case GlobalFlags.GridLineTypes.Done: Dispatcher.Invoke(new Action(() => lvitem.Foreground = Brushes.Gray)); break; case GlobalFlags.GridLineTypes.Ready: Dispatcher.Invoke(new Action(() => lvitem.Foreground = Brushes.Blue)); break; } } }
private GlobalFlags.GridLineTypes GetGridLineType(EventRunStatus[] eventStatus, int deviceIndex) { GlobalFlags.GridLineTypes result = GlobalFlags.GridLineTypes.Ready; if (eventStatus.Contains(EventRunStatus.Done)) { result = GlobalFlags.GridLineTypes.Done; } else if (eventStatus.Contains(EventRunStatus.Running)) { result = GlobalFlags.GridLineTypes.Running; } else if (deviceIndex <= 0) { result = GlobalFlags.GridLineTypes.Error; } return(result); }