Beispiel #1
0
 protected override void OnAttached()
 {
     base.OnAttached();
     AssociatedObject.DataContext = new ViewModel();
     pivotGrid    = AssociatedObject.Children[1] is Grid ? (AssociatedObject.Children[1] as Grid).Children[0] as PivotGridControl : null;
     scrollViewer = AssociatedObject.Children[1] is Grid ? (AssociatedObject.Children[1] as Grid).Children[1] as ScrollViewer : null;
     if (pivotGrid != null)
     {
         pivotGrid.AutoSizeOption = GridAutoSizeOption.None;
         var m = new MonthComparer("MMM");
         pivotGrid.PivotColumns.Add(new PivotItem
         {
             FieldHeader      = "Month",
             Comparer         = m,
             FieldMappingName = "Date",
             TotalHeader      = "Total",
             Format           = "MMM"
         });
         pivotGrid.PivotEngine.EnableOnDemandCalculations =
             pivotGrid.PivotEngine.UseIndexedEngine       = true;
         pivotGrid.PivotEngine.GetValue = ItemObjectLookup;
         ObservableCollection <ItemObject> itemsSourceObject =
             (AssociatedObject.DataContext as ViewModel).ItemObjectCollection;
         pivotGrid.PivotEngine.PivotSchemaChanged +=
             PivotEngine_PivotSchemaChanged;
         pivotGrid.ItemSource = itemsSourceObject;
     }
 }
Beispiel #2
0
        private List <TabularItemNode> Sort(CacheFieldNode cacheField, SharedItemsCollection cacheItems)
        {
            // Sort the fields according to their types.
            IComparer <string> comparer = null;

            if (this.TabularDataNode.CustomListSort && cacheField.IsDateGrouping)
            {
                if (cacheField.FieldGroup.GroupBy == PivotFieldDateGrouping.Months)
                {
                    comparer = new MonthComparer();
                }
                else if (cacheField.FieldGroup.GroupBy == PivotFieldDateGrouping.Days)
                {
                    comparer = new DayComparer();
                }
            }
            else
            {
                comparer = new NaturalComparer();
            }

            // Sort the slicer cache items.
            if (this.TabularDataNode.SortOrder == SortOrder.Descending)
            {
                return(this.TabularDataNode.Items.OrderByDescending(t => cacheItems[t.AtomIndex].Value, comparer).ToList());
            }
            return(this.TabularDataNode.Items.OrderBy(t => cacheItems[t.AtomIndex].Value, comparer).ToList());
        }