/// <summary> /// Creates new filter VM using saved data object /// </summary> /// <param name="data"></param> public FilterVM(FilterVMData data) { underlayingFilter = data.UnderlayingFilter; CanReorder = data.CanReorder; CanDelete = data.CanDelete; Name = data.Name; if (data.FilterDataProvider != null) { DataVM = (FilterDataProviderVM)Activator.CreateInstance(data.FilterDataProvider.GetType(), this); //Create concrete type, but cast it to base type DataVM.CopySettings(data.FilterDataProvider); } }
public override void CopySettings(FilterDataProviderVM provider) { if (!(provider is GaussianFilterDataProviderVM donor)) { throw new ArgumentException("Donor provider must be of a type GaussianFilterDataProviderVM, was of type:" + provider.GetType().ToString()); } width = donor.Width; height = donor.Height; sigma = donor.Sigma; SetData(); }
public override void CopySettings(FilterDataProviderVM provider) { if (!(provider is BasicMatrixFilterDataProviderVM donor)) { throw new ArgumentException("Donor provider must be of a type BasicMatrixFilterDataProviderVM, was of type:" + provider.GetType().ToString()); } Height = donor.Height; Width = donor.Width; Matrix = donor.Matrix; //subscribe to all events foreach (ObservableCollection <PrimitiveWrapper <double> > oc in Matrix) { oc.CollectionChanged += MidChanged; foreach (PrimitiveWrapper <double> pw in oc) { pw.PropertyChanged += BotChanged; } } SetData(); }
public abstract void CopySettings(FilterDataProviderVM provider);