private void ReleaseAllElementsButton_Click(object sender, RoutedEventArgs e) { if (PickedElements.SelectedIndex == -1) { while (Rvt.Data.PickedElements.Count > 0) { ElementContainer tmp = Rvt.Data.PickedElements[0]; Rvt.Data.PickedElements.RemoveAt(0); Rvt.Data.AvailableElements.Add(tmp); } } else { var tmpCollection = new ElementCollection(); foreach (ElementContainer item in PickedElements.SelectedItems) { tmpCollection.Add(item); } foreach (var item in tmpCollection) { Rvt.Data.PickedElements.Remove(item); Rvt.Data.AvailableElements.Insert(Rvt.Data.AvailableElements.Count, item); } } }
public ElementCollection GroupByCategory() { // Fill a dictionary by elements categories Dictionary <string, ElementCollection> categoryDict = new Dictionary <string, ElementCollection>(); foreach (ElementContainer elemCont in Rvt.Data.PickedElements) { if (categoryDict.Keys.Contains(elemCont.CategoryName) == false) { categoryDict.Add(elemCont.CategoryName, new ElementCollection()); } categoryDict[elemCont.CategoryName].Add(elemCont); } // Create a new element collection filled by the dictionary order ElementCollection groupedCol = new ElementCollection(); foreach (var pair in categoryDict) { groupedCol.Add(new ElementContainer(pair.Key)); // Add category line groupedCol.AddElementCollection(pair.Value); // Add elements of category } return(groupedCol); }