Select to view content in your preferred language

Legend repeats layers

2075
0
03-29-2013 09:35 AM
DonFreeman
Emerging Contributor
My attempt to use the legend control (as shown in the sample) results in the whole group of map layers being repeated for each layer listed in the legend.layerIDs. See code below. How do I avoid this?
<Grid Name="MapGrid" Grid.Column="1" Height="800" Margin="5,5,15,5">
   
    <Rectangle Fill="LightGray" 
      RadiusX="10" 
      RadiusY="10" 
      Height="780" 
      Width="Auto" 
      Stroke="SaddleBrown"  
      StrokeThickness="4"
        VerticalAlignment="Top"
      Margin="0,10,10,0">
    </Rectangle>

    <esri:Map x:Name="MyMap"  Extent="748437,575771,1204687,267438" Margin="10,20,20,20" IsLogoVisible="False" >
     <esri:Map.Layers>

      <esri:ArcGISDynamicMapServiceLayer ID="PAGBaseMap" 
      Url="http://gismaps.pagnet.org/ArcGIS/rest/services/StreetsBaseMap/MapServer"
      VisibleLayers="0,1,2" />

      
      <esri:ArcGISDynamicMapServiceLayer ID="HospitalsLayer" 
      Url="http://gismaps.pagnet.org/ArcGIS/rest/services/AirQuality/MapServer"
      VisibleLayers="1" Visible="false" />
      
      <esri:ArcGISDynamicMapServiceLayer ID="SchoolsLayer" 
      Url="http://gismaps.pagnet.org/ArcGIS/rest/services/AirQuality/MapServer"
      VisibleLayers="2" Visible="false"/> 

      <esri:ArcGISDynamicMapServiceLayer ID="MonitoringSitesLayer" 
      Url="http://gismaps.pagnet.org/ArcGIS/rest/services/AirQuality/MapServer"
      VisibleLayers="0" Visible="true"/>

      <esri:ArcGISDynamicMapServiceLayer ID="TucsonCOMaintLayer" 
      Url="http://gismaps.pagnet.org/ArcGIS/rest/services/AirQuality/MapServer"
      VisibleLayers="3" Visible="false"/>

      <esri:ArcGISDynamicMapServiceLayer ID="RillitoPM10Layer" 
      Url="http://gismaps.pagnet.org/ArcGIS/rest/services/AirQuality/MapServer"
      VisibleLayers="4" Visible="false"/>

      <esri:ArcGISDynamicMapServiceLayer ID="AjoPM10Layer" 
      Url="http://gismaps.pagnet.org/ArcGIS/rest/services/AirQuality/MapServer"
      VisibleLayers="6" Visible="false"/>

      <esri:ArcGISDynamicMapServiceLayer ID="AirPlanningLayer" 
      Url="http://gismaps.pagnet.org/ArcGIS/rest/services/AirQuality/MapServer"
      VisibleLayers="7" Visible="true"/>

      
      <!--<esri:FeatureLayer ID="HospitalsFeatureLayer" 
      Url="http://gismaps.pagnet.org/ArcGIS/rest/services/AirQuality/FeatureServer/1"
      OutFields="*"
      DisableClientCaching="True"
      AutoSave="False"
      Visible="True">
       <esri:FeatureLayer.MapTip>
        <Border CornerRadius="10" BorderBrush="SaddleBrown" BorderThickness="3" Margin="0,0,15,15" Background="LightGray">
         <StackPanel Orientation="Vertical" Margin="7">
          <StackPanel Orientation="Horizontal">
           <TextBlock Text="Name: " Foreground="Black" FontWeight="Bold"/>
           <TextBlock Text="{Binding [Name]}" Foreground="Black" />
          </StackPanel>
          <StackPanel Orientation="Horizontal">
           <TextBlock Text="Location: " Foreground="Black" FontWeight="Bold"/>
           <TextBlock Text="{Binding [Address]}" Foreground="Black" />
          </StackPanel>
         </StackPanel>
        </Border>
       </esri:FeatureLayer.MapTip>
      </esri:FeatureLayer>-->



     </esri:Map.Layers>
    </esri:Map>
    <Border Background="#77919191" BorderThickness="1" 
      CornerRadius="5"
      HorizontalAlignment="Right"  
      VerticalAlignment="Top"
      Margin="20" 
      Padding="5" 
      BorderBrush="Black" >
     <esri:Legend Map="{Binding ElementName=MyMap}" 
        LayerIDs="AirPlanningLayer, AjoPM10Layer, SchoolsLayer, HospitalsLayer"
        LayerItemsMode="Tree" 
          ShowOnlyVisibleLayers="False"
          Refreshed="Legend_Refreshed" >

      <esri:Legend.MapLayerTemplate>
       <DataTemplate>
        <StackPanel Orientation="Horizontal">
         <CheckBox Content="{Binding Label}"
                   IsChecked="{Binding IsEnabled, Mode=TwoWay}"
                   IsEnabled="{Binding IsInScaleRange}" >
         </CheckBox>
         
        </StackPanel>
       </DataTemplate>
      </esri:Legend.MapLayerTemplate>
      
      <esri:Legend.LayerTemplate>
       <DataTemplate>
        <CheckBox Content="{Binding Label}"
                  IsChecked="{Binding IsEnabled, Mode=TwoWay}"
                  IsEnabled="{Binding IsInScaleRange}" >
        </CheckBox>
       </DataTemplate>
      </esri:Legend.LayerTemplate>

     </esri:Legend>

    </Border>

   </Grid>
0 Kudos
0 Replies