Solved! Go to Solution.
<Style TargetType="esri:Legend">
<Setter Property="LayerItemsMode" Value="Flat" />
<Setter Property="LayerTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox Content="{Binding Label}"
IsChecked="{Binding IsEnabled, Mode=TwoWay}"
IsEnabled="{Binding IsInScaleRange}" >
</CheckBox>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
<Setter Property="MapLayerTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox Content="{Binding Label}"
IsChecked="{Binding IsEnabled, Mode=TwoWay}"
IsEnabled="{Binding IsInScaleRange}" >
</CheckBox>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style> <userControls:DraggableWindow IsOpen="True" x:Name="MapLegendWindow" Margin="0,280,20,0" VerticalAlignment="Top" HorizontalAlignment="Right" Width="212" Height="231" Padding="0" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Title="Map Legend" Background="{StaticResource BaseColor}">
<i:Interaction.Triggers>
<i:EventTrigger>
<actions:ToggleWindowVisibilityAction /> <!-- Hide at startup -->
</i:EventTrigger>
</i:Interaction.Triggers>
<esri:Legend x:Name="Legend" Map="{Binding ElementName=MyMap}"
LayerIDs="Schools, Base Layers"
LayerItemsMode="Flat"
ShowOnlyVisibleLayers="False"
Refreshed="Legend_Refreshed"/>
</userControls:DraggableWindow>
</Grid> private void Legend_Refreshed(object sender, Legend.RefreshedEventArgs e)
{
LayerItemViewModel removeLayerItemVM = null;
if (e.LayerItem.LayerItems != null)
{
foreach (LayerItemViewModel layerItemVM in e.LayerItem.LayerItems)
{
if (layerItemVM.IsExpanded)
layerItemVM.IsExpanded = false;
}
if (removeLayerItemVM != null)
e.LayerItem.LayerItems.Remove(removeLayerItemVM);
}
else
{
e.LayerItem.IsExpanded = false;
}
}