Selecting a FeatureLayer

This sample demonstrates selecting individual features, using a rectangle, in a local feature layer. Buttons for selecting new features, adding more features to the existing selection set, removing features from the existing selection set, and clearing all the features in the selection set are provided. The 'Keyboard' button enables the use of keyboard shortcuts to select features. Hold the Ctrl key and drag mouse to add new features to existing selection. Hold the Shift key and drag mouse to remove features from existing selection. Points in the FeatureLayer are rendered using a SimpleRenderer with a specified SimpleMarkerSymbol. MapTips on the FeatureLayer are provided to display attributes for a particular feature when the mouse is hovered over a selection.

Download Sample Application
XAML C# VB.NET
<UserControl x:Class="ArcGISWPFSDK.LocalFeatureLayerSelection"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:esri="http://schemas.esri.com/arcgis/client/2009">
    <Grid x:Name="LayoutRoot">
        <Grid.Resources>
            <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
            <esri:SimpleRenderer x:Key="MySimplePolygonRenderer">
                <esri:SimpleRenderer.Symbol>
                    <esri:SimpleFillSymbol Fill="#440000FF"/>
                </esri:SimpleRenderer.Symbol>
            </esri:SimpleRenderer>
            <esri:SimpleRenderer x:Key="MySimplePointRenderer">
                <esri:SimpleRenderer.Symbol>
                    <esri:SimpleMarkerSymbol Color="Yellow" />
                </esri:SimpleRenderer.Symbol>
            </esri:SimpleRenderer>
            <esri:Editor x:Key="MyEditor" LayerIDs="Cities"
             SelectionMode="Rectangle" />
            <LinearGradientBrush x:Key="PanelGradient" EndPoint="0.5,1" StartPoint="0.5,0">
                <LinearGradientBrush.RelativeTransform>
                    <TransformGroup>
                        <ScaleTransform CenterY="0.5" CenterX="0.5"/>
                        <SkewTransform CenterY="0.5" CenterX="0.5"/>
                        <RotateTransform Angle="176" CenterY="0.5" CenterX="0.5"/>
                        <TranslateTransform/>
                    </TransformGroup>
                </LinearGradientBrush.RelativeTransform>
                <GradientStop Color="#FF145787" Offset="0.16"/>
                <GradientStop Color="#FF3D7FAC" Offset="0.502"/>
                <GradientStop Color="#FF88C5EF" Offset="0.984"/>
            </LinearGradientBrush>
        </Grid.Resources>
        <esri:Map x:Name="MyMap" esri:Editor.SnapDistance="0" Loaded="MyMap_Loaded"  WrapAround="True" Extent="-15000000,2000000,-7000000,8000000" Background="#FFE3E3E3" MinimumResolution="2445.98490512499">
            <esri:Map.Layers>
                <esri:ArcGISLocalTiledLayer ID="TopoMapLayer"
                  Path="..\\Data\\TPKs\\Topographic.tpk"/>
                <esri:ArcGISLocalDynamicMapServiceLayer Path="..\\Data\\MPKS\\USCitiesStates.mpk"/>
                <esri:ArcGISLocalFeatureLayer ID="Cities" LayerName="Cities" Mode="SelectionOnly" 
                   Path="..\\Data\\MPKS\\USCitiesStates.mpk"        
                    Renderer="{StaticResource MySimplePointRenderer}"            
                    OutFields="*">
                    <esri:ArcGISLocalFeatureLayer.MapTip>
                        <Border CornerRadius="10" BorderBrush="#FF222957" Background="AliceBlue" 
                            BorderThickness="3" Margin="0,0,15,15">
                            <Border.Effect>
                                <DropShadowEffect ShadowDepth="10" BlurRadius="14" Direction="300" />
                            </Border.Effect>
                            <StackPanel Margin="7">
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="Population: " Foreground="Black" />
                                    <TextBlock Text="{Binding [POP2010]}" Foreground="Black" />
                                </StackPanel>
                            </StackPanel>
                        </Border>
                    </esri:ArcGISLocalFeatureLayer.MapTip>
                </esri:ArcGISLocalFeatureLayer >
            </esri:Map.Layers>
        </esri:Map>

        <StackPanel  x:Name="EditorToolStrip" Margin="0,5,5,0" DataContext="{StaticResource MyEditor}">
            <Border Background="{StaticResource PanelGradient}" BorderThickness="1" CornerRadius="5"
                        HorizontalAlignment="Right"  VerticalAlignment="Top"
                        Padding="5" BorderBrush="Black">
                <Border.Effect>
                    <DropShadowEffect Color="Black" Direction="-45" BlurRadius="20" Opacity=".75" />
                </Border.Effect>
                <StackPanel x:Name="EditorTools" Orientation="Horizontal">
                    <Button x:Name="SelectButton" Margin="2" Foreground="Black"
                            Content="New" 
                            Command="{Binding Select}" 
                            CommandParameter="New">
                    </Button>
                    <Button x:Name="AddSelectButton" Margin="2"  Foreground="Black"
                            Content="Add" 
                            Command="{Binding Select}" 
                            CommandParameter="Add">
                    </Button>
                    <Button x:Name="RemoveSelectButton" Margin="2"  Foreground="Black"
                            Content="Remove"
                            Command="{Binding Select}"
                            CommandParameter="Remove"
                            >
                    </Button>
                    <Button x:Name="EnableKeyboardButton" Margin="2"  Foreground="Black"
                            Content="Keyboard"
                            Command="{Binding Select}"
                            CommandParameter="Keyboard"
                            >
                    </Button>
                    <Button x:Name="ClearSelectionButton" Margin="2" Foreground="Black"
                            Content="Clear"
                            Command="{Binding ClearSelection}"
                            >
                    </Button>
                </StackPanel>
            </Border>
        </StackPanel>
        <Grid HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,10,10,0" >
            <Rectangle Fill="{StaticResource PanelGradient}" Stroke="Gray"  RadiusX="10" RadiusY="10" Margin="0,0,0,5">
                <Rectangle.Effect>
                    <DropShadowEffect/>
                </Rectangle.Effect>
            </Rectangle>
            <Rectangle Fill="#DDFFFFFF" Stroke="DarkGray" RadiusX="5" RadiusY="5" Margin="10,10,10,15" />
            <TextBlock x:Name="ResponseTextBlock" Text="The local feature layer is in SelectionOnly mode.  Use the selection tools to select/unselect features. Selections are displayed as client graphics in the local feature layer. When Keyboard is activated use the mouse to select new features.  Hold the Ctrl key and drag mouse to add new features to existing selection.  Hold the Shift key and drag mouse to remove features from existing selection." 
                 Width="200" TextAlignment="Left" Margin="30,20,20,30" TextWrapping="Wrap" Foreground="Black" />
        </Grid>
        <ProgressBar x:Name="MyProgressBar" IsIndeterminate="True" VerticalAlignment="Bottom" Width="200" Height="20" Margin="10" Visibility="{Binding Path=IsBusy, Converter={StaticResource BooleanToVisibilityConverter}}"></ProgressBar>
    </Grid>
</UserControl>

Sample code usage restrictions
5/16/2014