/// <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(); }