/// <summary> /// Create a new instance. /// </summary> internal HeaderCollection(Document owner, ICollection <Header> fields) { foreach (var field in fields) { if (field.Owner != null) { throw new ArgumentOutOfRangeException(nameof(fields), "Item cannot be in other collection."); } } Owner = owner; BaseCollection.AddRange(fields); foreach (var field in fields) { field.Owner = this; } //ensure first field is always Version if (!Contains(HeaderType.Version)) { BaseCollection.Insert(0, new Header(HeaderType.Version, BitConverter.GetBytes(Header.DefaultVersion))); } else { var versionField = this[HeaderType.Version]; var versionIndex = IndexOf(versionField); if (versionIndex > 0) { BaseCollection.RemoveAt(versionIndex); BaseCollection.Insert(0, versionField); } } }
/// <summary> /// <see cref="IList{T}.Insert(int, T)" /> /// </summary> public void Insert(int index, T item) { var oldItem = TryGetOldItem(index); BaseCollection.Insert(index, item); RaiseCollectionEvents(); var e = new NotifyCollectionChangedEventArgs(action: NotifyCollectionChangedAction.Move, changedItem: oldItem, index: index + 1, oldIndex: index); RaiseCollectionChanged(e); }
/// <summary> /// wordt aangeroepen vanuit Page_Load() en ReLoad() in BaseDataModuleUserControl /// </summary> /// <param name="dataId"></param> /// public override void SelectAndShowData(Guid dataId) { DataGroup group = BaseObject.GetById <DataGroup>(dataId); if (group == null) { DataItem item = BaseObject.GetById <DataItem>(dataId); if (item != null) { group = item.ParentGroup; } } if (group == null) { group = new DataGroup(); } if (group.DataCollection != null && group.DataCollection.ID != DataCollectionID) { //return; } ModuleNavigationActionLite navigationAction = GetNavigationActionByTagName("{DrillDownLink}"); if (navigationAction != null) { string navigationUrl = navigationAction.NavigationUrl; if (navigationAction.NavigationType == NavigationTypeEnum.ShowDetailsInModules) { //blijven op dezelfde pagina navigationUrl = Request.Url.LocalPath; } group.RewriteUrl = group.GetRewriteUrl(navigationUrl); //maak list aan BaseCollection <BaseDataObject> dataObjects = new BaseCollection <BaseDataObject>(); dataObjects.Add(group); while (group.ParentGroup != null) { group = group.ParentGroup; group.RewriteUrl = group.GetRewriteUrl(navigationUrl); dataObjects.Insert(0, group); } DataBind(dataObjects); } }