private void LoadFilter(XmlElement filterNode) { XmlAttribute attr = filterNode.Attributes["Guid"]; if (attr == null) { return; } Guid guid = XmlConvert.ToGuid(attr.Value); ISignalFilterFactory factory = Root.SignalFilterFactories .FirstOrDefault(f => f.UniqueIdentifier == guid); if (factory == null) { return; } DataSourceInstanceViewModel selectedDataSource = SignalViewSelector.SelectedDataSource; ISignalFilter filter = factory.ProduceSignalFilter(); try { filter.Load(filterNode); SignalFiltersPipeline.SignalFilters.Add(new SignalFilterViewModel(Root, filter)); } catch { } }
public SignalFilterViewModel(RootViewModel root, ISignalFilter signalFilter) : base(root) { if (signalFilter == null) { throw new ArgumentNullException(nameof(signalFilter)); } this.signalFilter = signalFilter; this.signalFilter.ConfigurationChanged += SignalFilter_ConfigurationChanged; }
private void AddSelectedFilter() { if (SelectedSignalFilterFactory == null) { return; } ISignalFilter signalFilter = SelectedSignalFilterFactory.ProduceSignalFilter(); var vm = new SignalFilterViewModel(Root, signalFilter) { Reorderer = SignalFilters, }; SignalFilters.Add(vm); Root.IsDataModified = true; }