public FrameViewModel(IFrameable frameable, IHostTransformation hostTransformation, IFrameSaver frameSaver) { Frameable = frameable; HostTransformation = hostTransformation; FrameSaver = frameSaver; hostTransformation.PropertyChanged += (sender, args) => { switch (args.PropertyName) { case "Quadrangle": OnPropertyChanged("Quadrangle"); break; case "Transformation": OnPropertyChanged("Transformation"); OnPropertyChanged("Lines"); OnPropertyChanged("Points"); OnPropertyChanged("Elements"); break; } }; if (frameSaver != null) { SaveFileContainer = new SaveFileContainerViewModel(this, frameSaver.GetType()); } }