public SettingsEditorModel( ConfigurationService configService )
        {
            myConfigService = configService;
            myConfigService.ConfigChanged += myConfigService_ConfigChanged;

            // make a copy here in order to support cancel
            ConversionSteps = new ObservableCollection<ILabelConversionStep>( Config.LabelConversion );
            Labels = new ObservableCollection<LabelViewModel>();

            myAddConversionEnabled = false;

            CancelCommand = new DelegateCommand( OnCancel );
            OkCommand = new DelegateCommand( OnOk );
            AddConversionCommand = new DelegateCommand( OnAddConversion, () => myAddConversionEnabled );
            RemoveConversionStepCommand = new DelegateCommand( OnRemoveConversionStep );
            MouseDownCommand = new DelegateCommand<MouseButtonEventArgs>( OnMouseDown );
        }
        public ShellViewModel(IStatusMessageService statusMessageService, ConfigurationService configService)
        {
            myStatusMessageService = statusMessageService;
            myStatusMessageService.Messages.CollectionChanged += OnStatusMessagesChanged;

            myConfigurationService = configService;

            NodeMasksEditorRequest = new InteractionRequest<INotification>();
            OpenFilterEditor = new DelegateCommand(OnOpenFilterEditor);

            SettingsEditorRequest = new InteractionRequest<IConfirmation>();
            OpenSettingsEditor = new DelegateCommand(OnOpenSettingsEditor);

            ShowStatusMessagesRequest = new InteractionRequest<INotification>();
            ShowStatusMessagesCommand = new DelegateCommand(ShowStatusMessages);

            myConfigurationService.ConfigChanged += OnConfigChanged;
        }