public override void OnApplyTemplate()
        {
            if (MapContentLayerConfigurationHost != null)
            {
                MapContentLayerConfigurationHost.LayerSelectionChanged -= MapContentsControl_LayerSelectionChanged;
            }

            if (SidePanelTabControl != null)
            {
                SidePanelTabControl.SelectionChanged -= SidePanelTabControl_SelectionChanged;
            }

            if (AddContentDialog != null)
            {
                AddContentDialog.LayerAdded     -= AddContentDialog_LayerAdded;
                AddContentDialog.LayerAddFailed -= AddContentDialog_LayerAddFailed;
            }

#if SILVERLIGHT
            if (SearchControl != null)
            {
                SearchControl.LayerSelectedForAdd -= SearchControl_LayerSelectedForAdd;
                SearchControl.NoteSelectedForAdd  -= SearchControl_NoteSelectedForAdd;
            }
#endif

            base.OnApplyTemplate();

            MapContentLayerConfigurationHost = GetTemplateChild(PART_MAPCONTENTSCONTROL) as MapContentLayerConfigurationHost;
            if (MapContentLayerConfigurationHost != null)
            {
                MapContentLayerConfigurationHost.LayerSelectionChanged += MapContentsControl_LayerSelectionChanged;
            }

            SidePanelTabControl = GetTemplateChild(PART_SIDEPANELTABCONTROL) as TabControl;
            if (SidePanelTabControl != null)
            {
                SidePanelTabControl.SelectionChanged += SidePanelTabControl_SelectionChanged;
            }

            AddContentDialog = GetTemplateChild(PART_ADDCONTENTCONTROL) as AddContentDialog;
            if (AddContentDialog != null)
            {
                AddContentDialog.DataSourceProvider  = DataSourceProvider;
                AddContentDialog.ConnectionsProvider = ConnectionsProvider;
                AddContentDialog.Map             = Map;
                AddContentDialog.LayerAdded     += AddContentDialog_LayerAdded;
                AddContentDialog.LayerAddFailed += AddContentDialog_LayerAddFailed;
            }

            #if SILVERLIGHT
            SearchControl = GetTemplateChild("SearchControl") as ESRI.ArcGIS.Mapping.Controls.ArcGISOnline.SearchControl;
            if (SearchControl != null)
            {
                SearchControl.LayerSelectedForAdd += SearchControl_LayerSelectedForAdd;
                SearchControl.NoteSelectedForAdd  += SearchControl_NoteSelectedForAdd;
            }
            #endif
        }
        public override void OnApplyTemplate()
        {
            if (MapContentLayerConfigurationHost != null)
            {
                MapContentLayerConfigurationHost.LayerSelectionChanged -= MapContentsControl_LayerSelectionChanged;
            }

            if (SidePanelTabControl != null)
                SidePanelTabControl.SelectionChanged -= SidePanelTabControl_SelectionChanged;

            if (AddContentDialog != null)
            {               
                AddContentDialog.LayerAdded -= AddContentDialog_LayerAdded;
                AddContentDialog.LayerAddFailed -= AddContentDialog_LayerAddFailed;
            }

#if SILVERLIGHT
            if (SearchControl != null)
            {
                SearchControl.LayerSelectedForAdd -= SearchControl_LayerSelectedForAdd;
                SearchControl.NoteSelectedForAdd -= SearchControl_NoteSelectedForAdd;
            }
#endif

            base.OnApplyTemplate();

            MapContentLayerConfigurationHost = GetTemplateChild(PART_MAPCONTENTSCONTROL) as MapContentLayerConfigurationHost;
            if (MapContentLayerConfigurationHost != null)
            {
                MapContentLayerConfigurationHost.LayerSelectionChanged += MapContentsControl_LayerSelectionChanged;
            }

            SidePanelTabControl = GetTemplateChild(PART_SIDEPANELTABCONTROL) as TabControl;
            if (SidePanelTabControl != null)
                SidePanelTabControl.SelectionChanged += SidePanelTabControl_SelectionChanged;

            AddContentDialog = GetTemplateChild(PART_ADDCONTENTCONTROL) as AddContentDialog;
            if (AddContentDialog != null)
            {
                AddContentDialog.DataSourceProvider = DataSourceProvider;
                AddContentDialog.ConnectionsProvider = ConnectionsProvider;
                AddContentDialog.Map = Map;
                AddContentDialog.LayerAdded += AddContentDialog_LayerAdded;
                AddContentDialog.LayerAddFailed += AddContentDialog_LayerAddFailed;
            }

            #if SILVERLIGHT
            SearchControl = GetTemplateChild("SearchControl") as ESRI.ArcGIS.Mapping.Controls.ArcGISOnline.SearchControl;
			if (SearchControl != null)
			{				
				SearchControl.LayerSelectedForAdd += SearchControl_LayerSelectedForAdd;
				SearchControl.NoteSelectedForAdd += SearchControl_NoteSelectedForAdd;
			}
            #endif
        }