/// <summary>
        /// Creates the member types collection from the current state.
        /// </summary>
        private void CreateMemberTypesFromCurrentState()
        {
            var allMemberTypes = new[] { Classes, Constructors, Delegates, Destructors, Enums, Events, Fields, Indexers, Interfaces, Methods, Properties, Structs };
            foreach (var memberType in allMemberTypes)
            {
                memberType.PropertyChanged += OnMemberTypeSettingPropertyChanged;
            }

            MemberTypes = new ObservableCollection<object>(allMemberTypes.GroupBy(x => x.Order)
                                                                         .Select(y => new List<object>(y))
                                                                         .OrderBy(z => ((MemberTypeSetting)z[0]).Order));

            MemberTypes.CollectionChanged += (sender, args) => UpdateMemberTypeSettings();
        }