// Sample groups loaded in MainPageVM.cs
        // Sample items loaded in GroupDetailPageVM.cs
        public SampleDataSource()
        {
            // MAPPING
            var groupMapping = new SampleDataGroup("Mapping",
                    "Mapping",
                    "Assets/DarkGray.png",
                    "");

            groupMapping.Items.Add(new SampleDataItem("Mapping-Item-1",
                    "Tiled Layer",
                    "Assets/TiledLayer.png",
                    "Add an ArcGIS Server cached map service layer to a map",
                    groupMapping, typeof(Samples.Maps.TiledMap)));

            groupMapping.Items.Add(new SampleDataItem("Mapping-Item-2",
                   "Dynamic Layer",
                   "Assets/DynamicLayer.png",
                   "Add an ArcGIS Server dynamic (non-cached) map service layer to a map",
                   groupMapping,
                   typeof(Samples.Maps.DynamicMap)));

            groupMapping.Items.Add(new SampleDataItem("Mapping-Item-3",
                    "Tiled & Dynamic Layers",
                    "Assets/TiledDynamic.png",
                    "Add an ArcGIS cached map service layer and dynamic map service layer to a map",
                    groupMapping,
                     typeof(Samples.Maps.DynamicAndTile)));

            groupMapping.Items.Add(new SampleDataItem("Mapping-Item-4",
                 "Feature Layer",
                 "Assets/FeatureLayer.png",
                 "Add ArcGIS feature layers from a feature service to a map",
                 groupMapping,
                 typeof(Samples.Maps.FeatureLayers)));

            groupMapping.Items.Add(new SampleDataItem("Mapping-Item-5",
             "Location Display",
             "Assets/LocationDisplay.png",
             "Display current location and heading",
             groupMapping,
             typeof(Samples.Maps.LocationDisplay)));

            groupMapping.Items.Add(new SampleDataItem("Mapping-Item-7",
             "WMS Layer",
             "Assets/WMSLayer.png",
             "Add a WMS layer to a map",
             groupMapping,
             typeof(Samples.Maps.WmsLayerSimple)));

            groupMapping.Items.Add(new SampleDataItem("Mapping-Item-8",
             "CSV Layer",
             "Assets/CsvLayerSimple.png",
             "Add CSV data to a map",
             groupMapping,
             typeof(Samples.Maps.CsvLayerSimple)));

            groupMapping.Items.Add(new SampleDataItem("Mapping-Item-9",
                 "Overview Map",
                 "Assets/OverviewMap.png",
                  "Use a second map as an overview map",
                 groupMapping,
                 typeof(Samples.Maps.OverviewMap)));

            groupMapping.Items.Add(new SampleDataItem("Mapping-Item-6",
             "Bind to Map Properties",
             "Assets/BindMapProperties.png",
             "Bind to map properties to be notified of changes in property values",
             groupMapping,
             typeof(Samples.Maps.MapProperties)));

            groupMapping.Items.Add(new SampleDataItem("Mapping-Item-10",
               "Enable Touch Rotation",
               "Assets/EnableTouchRotation.png",
               "Set the ManipulationMode to 'All' to enable map rotation via touch input",
               groupMapping,
               typeof(Samples.Maps.EnableTouchRotation)));

            this.AllGroups.Add(groupMapping);

            // GRAPHICS
            var groupGraphics = new SampleDataGroup("Graphics",
                    "Graphics",
                    "Assets/DarkGray.png",
                    "");

            groupGraphics.Items.Add(new SampleDataItem("Group-2-Item-3",
             "Add using XAML",
             "Assets/AddGraphicsXAML.png",
             "Define symbols and graphics in XAML",
             groupGraphics,
             typeof(Samples.Graphics.AddGraphicsXAML)));

            groupGraphics.Items.Add(new SampleDataItem("Group-2-Item-4",
             "Add point on tap",
             "Assets/AddPointOnTap.png",
             "Tap on the map to add a graphic",
             groupGraphics,
             typeof(Samples.Graphics.AddPointOnTap)));

            groupGraphics.Items.Add(new SampleDataItem("Group-2-Item-6",
             "Graphic Pointer Events",
             "Assets/GraphicEvents.png",
             "Listen for user interaction events on graphics",
             groupGraphics,
             typeof(Samples.Graphics.GraphicEvents)));

            groupGraphics.Items.Add(new SampleDataItem("Group-2-Item-7",
             "Pen Drawing",
             "Assets/PenDrawing.png",
             "Redline using a pen device",
             groupGraphics,
             typeof(Samples.Graphics.PenDrawing)));

            this.AllGroups.Add(groupGraphics);

            // EXTRAS
            var groupExtras = new SampleDataGroup("Extras",
                    "Extras",
                    "Assets/DarkGray.png",
                    "");

            groupExtras.Items.Add(new SampleDataItem("Group-3-Item-4",
                 "Layer list",
                 "Assets/LayerList.png",
                 "Show all layers, manipulate opacity, visibility and order",
                 groupExtras,
                 typeof(Samples.Misc.LayerList)));

            groupExtras.Items.Add(new SampleDataItem("Group-3-Item-5",
                 "Symbol Swatches",
                 "Assets/SymbolSwatches.png",
                 "Create Symbol Swatches from Symbols",
                 groupExtras,
                 typeof(Samples.Misc.SymbolSwatches)));

            //groupExtras.Items.Add(new SampleDataItem("Group-3-Item-6",
            // "Simple MapTip",
            // "Assets/MediumGray.png",
            // "",
            // groupExtras,
            // typeof(Samples.Misc.SimpleMapTip)));

            this.AllGroups.Add(groupExtras);

            // IMAGE SERVICES
            var groupImageServices = new SampleDataGroup("Image Services",
                    "Image Services",
                    "Assets/DarkGray.png",
                    "");

            groupImageServices.Items.Add(new SampleDataItem("Group-4-Item-1",
             "Simple Image Service",
             "Assets/ImageServiceSimple.png",
             "Add an ArcGIS Server image service layer to a map",
             groupImageServices,
             typeof(Samples.ImageServices.ImageServiceSimple)));

            groupImageServices.Items.Add(new SampleDataItem("Group-4-Item-2",
             "Shaded Relief, Slope",
             "Assets/ShadedReliefSlope.png",
             "Use a RenderingRule to display imagery with different display formats",
             groupImageServices,
             typeof(Samples.ImageServices.ShadedReliefSlope)));

            groupImageServices.Items.Add(new SampleDataItem("Group-4-Item-4",
             "Stretch",
             "Assets/Stretch.png",
             "Use a RenderingRule to display imagery with different stretch formats",
             groupImageServices,
             typeof(Samples.ImageServices.Stretch)));

            groupImageServices.Items.Add(new SampleDataItem("Group-4-Item-3",
             "Raster Functions",
             "Assets/RasterFunctions.png",
             "Apply raster functions provided by the image service to change layer display results",
             groupImageServices,
             typeof(Samples.ImageServices.RasterFunctions)));

            this.AllGroups.Add(groupImageServices);

            // DYNAMIC LAYERS
            var groupDynamicLayers = new SampleDataGroup("Dynamic Layers",
                    "Dynamic Layers",
                    "Assets/DarkGray.png",
                    "");

            groupDynamicLayers.Items.Add(new SampleDataItem("Group-5-Item-1",
             "Dynamic Layers In Code",
             "Assets/DynamicLayersInCode.png",
             "",
             groupDynamicLayers,
             typeof(Samples.DynamicLayer.DynamicLayersInCode)));

            this.AllGroups.Add(groupDynamicLayers);

            // QUERY
            var groupQueryTask = new SampleDataGroup("Query",
                    "Query",
                    "Assets/DarkGray.png",
                    "");

            //groupQueryTask.Items.Add(new SampleDataItem("Group-6-Item-1",
            // "Query Only",
            // "Assets/QueryOnly.png",
            // "",
            // groupQueryTask,
            // typeof(Samples.Query.QueryOnly)));

            groupQueryTask.Items.Add(new SampleDataItem("Group-6-Item-2",
            "Attribute Query",
            "Assets/AttributeQuery.png",
            "",
            groupQueryTask,
            typeof(Samples.Query.AttributeQuery)));

            //groupQueryTask.Items.Add(new SampleDataItem("Group-6-Item-3",
            // "Statistics",
            // "Assets/Statistics.png",
            // "",
            // groupQueryTask,
            // typeof(Samples.Query.Statistics)));

            groupQueryTask.Items.Add(new SampleDataItem("Group-6-Item-4",
             "Query Related Records",
             "Assets/QueryRelatedRecords.png",
             "",
             groupQueryTask,
             typeof(Samples.Query.QueryRelatedRecords)));

            groupQueryTask.Items.Add(new SampleDataItem("Group-6-Item-5",
               "Identify",
               "Assets/Identify.png",
               "",
               groupQueryTask,
               typeof(Samples.Query.Identify)));

            //groupQueryTask.Items.Add(new SampleDataItem("Group-6-Item-7",
            // "Buffer",
            // "Assets/Statistics.png",
            // "",
            // groupQueryTask,
            // typeof(Samples.Query.QueryWithBuffer)));

            this.AllGroups.Add(groupQueryTask);

            // NETWORK
            var groupNetwork = new SampleDataGroup("Network",
                    "Network",
                    "Assets/DarkGray.png",
                    "");

            groupNetwork.Items.Add(new SampleDataItem("Group-7-Item-1",
             "Routing",
             "Assets/Routing.png",
             "",
             groupNetwork,
             typeof(Samples.Network.Routing)));

            groupNetwork.Items.Add(new SampleDataItem("Group-7-Item-2",
              "Routing with Barriers",
              "Assets/RoutingWithBarriers.png",
              "",
              groupNetwork,
              typeof(Samples.Network.RoutingWithBarriers)));

            groupNetwork.Items.Add(new SampleDataItem("Group-7-Item-3",
                "Driving Directions",
                "Assets/DrivingDirections.png",
                "",
                groupNetwork,
                typeof(Samples.Network.DrivingDirections)));
            this.AllGroups.Add(groupNetwork);

            // LOCATOR
            var groupLocator = new SampleDataGroup("Address Matching",
                    "Address Matching",
                    "Assets/DarkGray.png",
                    "");

            groupLocator.Items.Add(new SampleDataItem("Group-8-Item-1",
             "Address of location",
             "Assets/AddressOfLocation.png",
             "",
             groupLocator,
             typeof(Samples.Locator.AddressOfLocation)));

            groupLocator.Items.Add(new SampleDataItem("Group-8-Item-2",
             "Batch geocoding",
             "Assets/BatchGeocoding.png",
             "",
             groupLocator,
             typeof(Samples.Locator.BatchGeocoding)));

            groupLocator.Items.Add(new SampleDataItem("Group-8-Item-3",
             "Find an address",
             "Assets/FindAnAddress.png",
             "",
             groupLocator,
             typeof(Samples.Locator.FindAnAddress)));

            this.AllGroups.Add(groupLocator);
        }
 public SampleDataItem(String uniqueId, String title, String imagePath, String description, SampleDataGroup group, Type samplePage)
     : base(uniqueId, title, imagePath, description)
 {
     this._group = group;
     this._samplePage = samplePage;
 }