using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Input; using Aitex.UI.Charting.ViewModel; using System.Windows; using Aitex.UI.Charting.View; using DataAnalysisControl.Core; namespace Aitex.UI.Charting.Command { public class RemoveDataSeriesCommand : ICommand { public RemoveDataSeriesCommand(string uniqueDataId) { _uniqueDataId = uniqueDataId; } string _uniqueDataId; public bool CanExecute(object parameter) { return true; } #pragma warning disable 0067 public event EventHandler CanExecuteChanged; #pragma warning restore 0067 private void AsyncShowWarningMessageBox(string message, string title) { Application.Current.Dispatcher.BeginInvoke(new Action(() => MessageBox.Show(message, title, MessageBoxButton.OK, MessageBoxImage.Warning))); } public void Execute(object parameter) { string reason = string.Empty; try { var commonViewModel = (CommonViewModel)parameter; if (string.IsNullOrEmpty(_uniqueDataId)) { foreach (MyLineSeries item in commonViewModel.RenderableSeries) { item.DataSource.Datas[item.SeriesName].RawData.Clear(); item.DataSource.Datas[item.SeriesName].TimeStamp.Clear(); } commonViewModel.RenderableSeries.Clear(); } else { foreach (MyLineSeries item in commonViewModel.RenderableSeries) { if (item.UniqueId == _uniqueDataId) { item.DataSource.Datas[item.SeriesName].RawData.Clear(); item.DataSource.Datas[item.SeriesName].TimeStamp.Clear(); commonViewModel.RenderableSeries.Remove(item); break; } } } //通知Property修改 commonViewModel.InvokePropertyChanged("RenderableSeries"); } catch (Exception ex) { reason = string.Format("Chating删除DataSeries之{0}发生异常", _uniqueDataId); CONTEXT.WriteLog(ex, reason); AsyncShowWarningMessageBox(reason, "警告"); } } } }