Beispiel #1
0
 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);
        }