/// <summary> /// Add a select item to the current list of selection items /// </summary> /// <param name="itemToAdd">The item to add</param> internal void AddToSelectedItems(SelectItem itemToAdd) { ExceptionUtils.CheckArgumentNotNull(itemToAdd, "itemToAdd"); if (this.selectedItems.Any(x => x is WildcardSelectItem) && UriUtils.IsStructuralOrNavigationPropertySelectionItem(itemToAdd)) { return; } bool isWildcard = itemToAdd is WildcardSelectItem; List <SelectItem> newSelectedItems = new List <SelectItem>(); foreach (SelectItem selectedItem in this.selectedItems) { if (isWildcard) { if (!UriUtils.IsStructuralSelectionItem(selectedItem)) { newSelectedItems.Add(selectedItem); } } else { newSelectedItems.Add(selectedItem); } } newSelectedItems.Add(itemToAdd); this.selectedItems = new ReadOnlyCollection <SelectItem>(newSelectedItems); }