private static void OnSortDescriptorChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            SummaryContent control = (SummaryContent)d;

            if (control.SortDescriptor != null)
            {
                switch (control.SortDescriptor.Type)
                {
                case SummarySortType.ByAmount:
                    if (control.SortDescriptor.Direction == SortDirection.Ascending)
                    {
                        control.ViewModel.Items.Sort(items => items.OfType <SummaryCategoryViewModel>().OrderBy(i => i.AmountValue));
                    }
                    else
                    {
                        control.ViewModel.Items.Sort(items => items.OfType <SummaryCategoryViewModel>().OrderByDescending(i => i.AmountValue));
                    }

                    break;

                case SummarySortType.ByCategory:
                    if (control.SortDescriptor.Direction == SortDirection.Ascending)
                    {
                        control.ViewModel.Items.Sort(items => items.OfType <SummaryCategoryViewModel>().OrderBy(i => i.Name));
                    }
                    else
                    {
                        control.ViewModel.Items.Sort(items => items.OfType <SummaryCategoryViewModel>().OrderByDescending(i => i.Name));
                    }

                    break;
                }
            }
        }
        private static void OnPreferedViewTypeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            SummaryContent control = (SummaryContent)d;

            switch (control.PreferedViewType)
            {
            case SummaryViewType.PieChart:
                control.IsPieChartPrefered = true;
                control.IsBarGraphPrefered = false;
                break;

            case SummaryViewType.BarGraph:
                control.IsPieChartPrefered = false;
                control.IsBarGraphPrefered = true;
                break;

            default:
                throw Ensure.Exception.NotSupported(control.PreferedViewType.ToString());
            }
        }
        private static void OnPreferedViewTypeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            SummaryContent control = (SummaryContent)d;

            control.OnPreferedViewTypeChanged(VisualStateManager.GetVisualStateGroups(control.grdMain).First().CurrentState);
        }
        private static void OnSortDescriptorChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            SummaryContent control = (SummaryContent)d;

            control.OnSortDescriptorChanged(e);
        }
        private static void OnSelectedItemChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            SummaryContent control = (SummaryContent)d;

            control.OnSelectedItemChanged(e);
        }