示例#1
0
        public KeyNodeViewModel(IEventAggregator eventAggregator, IRegistryFactory registryFactory)
        {
            _eventAggregator = eventAggregator;
            _registryFactory = registryFactory;

            ((ListCollectionView)CollectionViewSource.GetDefaultView(Keys)).CustomSort = KeyNodeComparer.Default;
        }
示例#2
0
        public ValueDisplayViewModel(IEventAggregator eventAggregator, IRegistryFactory registryFactory)
        {
            _registryFactory = registryFactory;

            eventAggregator.Subscribe(this);

            ((ListCollectionView)CollectionViewSource.GetDefaultView(Values)).CustomSort = ValueComparer.Default;

            Values.CollectionChanged += (sender, e) =>
            {
                void SubscribeNewItems()
                {
                    foreach (IValueViewModel item in e.NewItems)
                    {
                        item.Deleted += ValueDeleted;
                    }
                }

                void UnsubscribeOldItems()
                {
                    foreach (IValueViewModel item in e.OldItems)
                    {
                        item.Deleted -= ValueDeleted;
                    }
                }

                switch (e.Action)
                {
                case NotifyCollectionChangedAction.Add:
                    SubscribeNewItems();
                    break;

                case NotifyCollectionChangedAction.Remove:
                    UnsubscribeOldItems();
                    break;

                case NotifyCollectionChangedAction.Replace:
                    UnsubscribeOldItems();
                    SubscribeNewItems();
                    break;

                case NotifyCollectionChangedAction.Reset:
                    Values.Apply(value => value.Deleted += ValueDeleted);
                    break;
                }
            };
        }
示例#3
0
        public RegistryTreeViewModel(IEventAggregator eventAggregator, IRegistryFactory registryFactory)
        {
            eventAggregator.Subscribe(this);

            IKeyNodeViewModel computerKey = registryFactory.MakeKey(new Key());

            computerKey.Keys.AddRange(new RegistryKey[]
            {
                Registry.ClassesRoot,
                Registry.CurrentUser,
                Registry.LocalMachine,
                Registry.Users,
                Registry.CurrentConfig
            }.Select(registryKey => new Key(registryKey)).Select(registryFactory.MakeKey));
            computerKey.IsExpanded = true;
            computerKey.IsSelected = true;

            RootKey = registryFactory.MakeKey(null);
            RootKey.Keys.Add(computerKey);
            RootKey.IsExpanded = true;
        }
示例#4
0
 public RepositoryController(IRegistryFactory regFactory, ILogger <RepositoryController> logger)
 {
     _RegFactory  = regFactory;
     this._Logger = logger;
 }
 public RepositoriesController(IRegistryFactory regFactory)
 {
     _RegFactory = regFactory;
 }
 public EditValueDialogViewModel(IRegistryFactory registryFactory)
 {
     _registryFactory = registryFactory;
 }
示例#7
0
 public ValueViewModel(IRegistryFactory registryFactory, IDialogService dialogService)
 {
     _registryFactory = registryFactory;
     _dialogService   = dialogService;
 }