RemoveDataSeriesCommand.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Windows.Input;
  6. using Aitex.UI.Charting.ViewModel;
  7. using System.Windows;
  8. using Aitex.UI.Charting.View;
  9. using DataAnalysisControl.Core;
  10. namespace Aitex.UI.Charting.Command
  11. {
  12. public class RemoveDataSeriesCommand : ICommand
  13. {
  14. public RemoveDataSeriesCommand(string uniqueDataId)
  15. {
  16. _uniqueDataId = uniqueDataId;
  17. }
  18. string _uniqueDataId;
  19. public bool CanExecute(object parameter)
  20. {
  21. return true;
  22. }
  23. #pragma warning disable 0067
  24. public event EventHandler CanExecuteChanged;
  25. #pragma warning restore 0067
  26. private void AsyncShowWarningMessageBox(string message, string title)
  27. {
  28. Application.Current.Dispatcher.BeginInvoke(new Action(() => MessageBox.Show(message, title, MessageBoxButton.OK, MessageBoxImage.Warning)));
  29. }
  30. public void Execute(object parameter)
  31. {
  32. string reason = string.Empty;
  33. try
  34. {
  35. var commonViewModel = (CommonViewModel)parameter;
  36. if (string.IsNullOrEmpty(_uniqueDataId))
  37. {
  38. foreach (MyLineSeries item in commonViewModel.RenderableSeries)
  39. {
  40. item.DataSource.Datas[item.SeriesName].RawData.Clear();
  41. item.DataSource.Datas[item.SeriesName].TimeStamp.Clear();
  42. }
  43. commonViewModel.RenderableSeries.Clear();
  44. }
  45. else
  46. {
  47. foreach (MyLineSeries item in commonViewModel.RenderableSeries)
  48. {
  49. if (item.UniqueId == _uniqueDataId)
  50. {
  51. item.DataSource.Datas[item.SeriesName].RawData.Clear();
  52. item.DataSource.Datas[item.SeriesName].TimeStamp.Clear();
  53. commonViewModel.RenderableSeries.Remove(item);
  54. break;
  55. }
  56. }
  57. }
  58. //通知Property修改
  59. commonViewModel.InvokePropertyChanged("RenderableSeries");
  60. }
  61. catch (Exception ex)
  62. {
  63. reason = string.Format("Chating删除DataSeries之{0}发生异常", _uniqueDataId);
  64. CONTEXT.WriteLog(ex, reason);
  65. AsyncShowWarningMessageBox(reason, "警告");
  66. }
  67. }
  68. }
  69. }