private void thisDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            SourceInfoViewModel oldVM = e.OldValue as SourceInfoViewModel;
            SourceInfoViewModel newVM = e.NewValue as SourceInfoViewModel;

            if (oldVM != null)
            {
                oldVM.PropertyChanged -= Model_PropertyChanged;
            }
            if (newVM != null)
            {
                newVM.PropertyChanged += Model_PropertyChanged;
            }
        }
        public SourceManagerViewModel()
        {
            _srcPersis      = NinjectResolver.Instance.Get <ISourcePersistence>();
            SourceInfoModel = new SourceInfoViewModel(_srcPersis);
            SourceInfoModel.SourceCreated += SIM_SourceCreated;
            SourceInfoModel.SourceUpdated += SIM_SourceUpdated;


            CloseCmd     = new CommandDelegate(_ => doCloseCmd());
            CreateNewCmd = new CommandDelegate(_ => doCreateNewCmd());
            DeleteCmd    = new CommandDelegate(_ => doDeleteCmd());
            ConnectCmd   = new CommandDelegate(_ => doConnectCmd());

            SourceItems           = new CollectionViewSource();
            this.PropertyChanged += thisPropertyChanged;
            reloadSource();
        }