DataGrid.SelectedItem Property

Silverlight

Gets or sets the data item corresponding to the selected row.

Namespace:  System.Windows.Controls
Assembly:  System.Windows.Controls.Data (in System.Windows.Controls.Data.dll)

public Object SelectedItem { get; set; }

Property Value

Type: System.Object
The data item corresponding to the selected row.

ExceptionCondition
InvalidOperationException

When setting this property to a new value while the control is in editing mode, the edit cannot be committed or reverted.

Dependency property identifier field: SelectedItemProperty

If the SelectionMode property is set to Extended and multiple rows are selected, use the SelectedItems property to retrieve all selected items.

If multiple rows are selected and the current row is a selected row, the SelectedItem property returns the current row. If multiple rows are selected and the current row is not a selected row, the SelectedItem property returns the selected row with the lowest index.

The following example shows how to retrieve the value of the current cell using the CurrentColumn, SelectedItem and CurrentCellChanged members.

Run this sample


public partial class MainPage : UserControl
{
    public MainPage()
    {
        InitializeComponent();
        System.Collections.ObjectModel.ObservableCollection<Color> myColors =
            new System.Collections.ObjectModel.ObservableCollection<Color>(){Colors.Red, Colors.Blue, Colors.Green};
        dataGrid1.DataContext = myColors;
    }

    private void dataGrid1_CurrentCellChanged(object sender, EventArgs e)
    {
        if (dataGrid1.SelectedItem != null)
        {
            textBox1.DataContext = dataGrid1.CurrentColumn.Header.ToString() + ": " + 
                ((TextBlock)dataGrid1.CurrentColumn.GetCellContent(dataGrid1.SelectedItem)).Text;
        }
    }

}



<Grid x:Name="LayoutRoot" Background="White">
    <sdk:DataGrid Name="dataGrid1" AutoGenerateColumns="True" 
        CurrentCellChanged="dataGrid1_CurrentCellChanged"  
        SelectionMode="Single" ItemsSource="{Binding}"
        Height="129" Width="225" Margin="28,34,0,0" 
        HorizontalAlignment="Left" VerticalAlignment="Top" />
    <TextBox Name="textBox1" Height="24" Width="84" IsReadOnly="True" 
        HorizontalAlignment="Left" VerticalAlignment="Top" 
        Margin="259,83,0,0" Text="{Binding}" />
</Grid>


Silverlight

Supported in: 5, 4, 3

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions

ADD
Show: