Beispiel #1
0
        private void AddNewKeyHolder(RegistryKey registryKey)
        {
            RegistryKeyHolder3 newKeyHolder = new RegistryKeyHolder3(registryKey, 0);

            newKeyHolder.PropertyChanged += new PropertyChangedEventHandler(KeyHolder_PropertyChanged);
            this.allKeys.Add(newKeyHolder);
        }
Beispiel #2
0
        public void ClearSubKeys(RegistryKeyHolder3 parentKeyHolder)
        {
            int indexToRemove = this.allKeys.IndexOf(parentKeyHolder) + 1;

            while ((indexToRemove < this.allKeys.Count) && (this.allKeys[indexToRemove].Level > parentKeyHolder.Level))
            {
                this.allKeys.RemoveAt(indexToRemove);
                this.DataItemsCount--;
            }
        }
Beispiel #3
0
        private void TreeItemDoubleClick(object sender, MouseButtonEventArgs e)
        {
            FrameworkElement fe = e.OriginalSource as FrameworkElement;

            if (fe != null)
            {
                RegistryKeyHolder3 keyHolder = fe.DataContext as RegistryKeyHolder3;
                if (keyHolder != null)
                {
                    keyHolder.IsExpanded = !keyHolder.IsExpanded;
                    e.Handled            = true;
                }
            }
        }
Beispiel #4
0
 void KeyHolder_PropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (e.PropertyName == "IsExpanded")
     {
         RegistryKeyHolder3 keyHolder = (RegistryKeyHolder3)sender;
         if (keyHolder.IsExpanded)
         {
             this.PopulateSubKeys(keyHolder);
         }
         else
         {
             this.ClearSubKeys(keyHolder);
         }
     }
 }
Beispiel #5
0
        public void PopulateSubKeys(RegistryKeyHolder3 parentKeyHolder)
        {
            int indexParentKey = this.allKeys.IndexOf(parentKeyHolder);

            if (indexParentKey == this.allKeys.Count - 1 || this.allKeys[indexParentKey + 1].Level <= parentKeyHolder.Level)
            {
                string[] subKeyNames = parentKeyHolder.Key.GetSubKeyNames();
                for (int i = 0; i < subKeyNames.Length; i++)
                {
                    RegistryKeyHolder3 childKeyHolder = new RegistryKeyHolder3(parentKeyHolder.Key.OpenSubKey(subKeyNames[i]), parentKeyHolder.Level + 1);
                    childKeyHolder.PropertyChanged += new PropertyChangedEventHandler(KeyHolder_PropertyChanged);
                    allKeys.Insert(indexParentKey + i + 1, childKeyHolder);
                    this.DataItemsCount++;
                }
            }
        }