// Here we load all the nodes on the left from xml file.
        private void InitializetionDataCategories()
        {
            var xDoc     = XDocument.Load(MapSuiteSampleHelper.GetValueFromConfiguration("CategoryFilePath"));
            var elements = from category in xDoc.Element("DemographicMap").Elements("Category")
                           select category;

            foreach (var element in elements)
            {
                DataCategoryViewModel category = null;
                string title = element.Attribute("name").Value;
                category               = title != "Custom Data" ? new DataCategoryViewModel() : new CustomDataCategoryViewModel();
                category.Title         = title;
                category.CategoryImage = new BitmapImage(new Uri(string.Format(CultureInfo.InvariantCulture, "{0}{1}", "pack://application:,,,/MapSuiteUSDemographicMap;component/", element.Attribute("icon").Value), UriKind.RelativeOrAbsolute));

                foreach (var item in element.Elements("item"))
                {
                    ColumnViewModel categoryItem = new ColumnViewModel();
                    categoryItem.Parent      = category;
                    categoryItem.ColumnName  = item.Element("columnName").Value;
                    categoryItem.Alias       = item.Element("alias").Value;
                    categoryItem.LegendTitle = item.Element("legendTitle").Value;
                    category.Columns.Add(categoryItem);
                }
                category.CanUsePieView = category.Columns.Count >= 2;
                CategoryList.Add(category);
            }
        }
        private void ValueCirclesClick(object sender, RoutedEventArgs e)
        {
            CollapseControls();
            mainWindowViewModel.ValueCircleVisibility = Visibility.Visible;
            ColumnViewModel columnViewModel = sender.GetDataContext <ColumnViewModel>();

            if (columnViewModel != null && !(columnViewModel.Parent is CustomDataCategoryViewModel))
            {
                mapModel.DefaultFeatureLayer = mapModel.CensusStateFeatureLayer;
            }
            else
            {
                mapModel.DefaultFeatureLayer = mapModel.CustomDataFeatureLayer;
            }
            RenderDemographicStyle(sender, mainWindowViewModel.ValueCircleDemographicStyle);
        }
        private void ThematicColorsClick(object sender, RoutedEventArgs e)
        {
            CollapseControls();
            mainWindowViewModel.ThematicVisibility = Visibility.Visible;
            mainWindowViewModel.DisplayColorText   = "Display Start Color:";
            ColumnViewModel columnViewModel = sender.GetDataContext <ColumnViewModel>();

            if (columnViewModel != null && !(columnViewModel.Parent is CustomDataCategoryViewModel))
            {
                mapModel.DefaultFeatureLayer = mapModel.CensusStateFeatureLayer;
            }
            else
            {
                mapModel.DefaultFeatureLayer = mapModel.CustomDataFeatureLayer;
            }
            RenderDemographicStyle(sender, mainWindowViewModel.ThematicDemographicStyle);
        }
        private void RenderDemographicStyle(object sender, DemographicStyleBuilder demographicStyleBuilder)
        {
            FrameworkElement frameworkElement = (FrameworkElement)sender;
            ColumnViewModel  columnViewModel  = (ColumnViewModel)frameworkElement.DataContext;

            columnViewModel.IsSelected = true;
            foreach (var item in mainWindowViewModel.SelectedCategory.Columns)
            {
                item.CheckBoxVisiblity = Visibility.Hidden;
            }

            mainWindowViewModel.UpdateUIControls(demographicStyleBuilder);

            mainWindowViewModel.CurrentStyleBuilder.SelectedColumns.Clear();
            mainWindowViewModel.CurrentStyleBuilder.SelectedColumns.Add(columnViewModel.ColumnName);
            mapModel.LegendTitle = columnViewModel.LegendTitle;

            mainWindowViewModel.UpdateMap();
        }
        // Here we load all the nodes on the left from xml file.
        private void InitializetionDataCategories()
        {
            var xDoc = XDocument.Load(MapSuiteSampleHelper.GetValueFromConfiguration("CategoryFilePath"));
            var elements = from category in xDoc.Element("DemographicMap").Elements("Category")
                           select category;

            foreach (var element in elements)
            {
                DataCategoryViewModel category = null;
                string title = element.Attribute("name").Value;
                category = title != "Custom Data" ? new DataCategoryViewModel() : new CustomDataCategoryViewModel();
                category.Title = title;
                category.CategoryImage = new BitmapImage(new Uri(string.Format(CultureInfo.InvariantCulture, "{0}{1}", "pack://application:,,,/MapSuiteUSDemographicMap;component/", element.Attribute("icon").Value), UriKind.RelativeOrAbsolute));

                foreach (var item in element.Elements("item"))
                {
                    ColumnViewModel categoryItem = new ColumnViewModel();
                    categoryItem.Parent = category;
                    categoryItem.ColumnName = item.Element("columnName").Value;
                    categoryItem.Alias = item.Element("alias").Value;
                    categoryItem.LegendTitle = item.Element("legendTitle").Value;
                    category.Columns.Add(categoryItem);
                }
                category.CanUsePieView = category.Columns.Count >= 2;
                CategoryList.Add(category);
            }
        }