I have a DataGrid
, bound to Database table, I need to get the content of selected row in DataGrid
, for example, I want to show in MessageBox
content of selected row.
Example of DataGrid
:
So, if I select the second row, my MessageBox
has to show something like: 646 Jim Biology.
<DataGrid. Columns> <DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
You can use the SelectedItem
property to get the currently selected object, which you can then cast into the correct type. For instance, if your DataGrid
is bound to a collection of Customer
objects you could do this:
Customer customer = (Customer)myDataGrid.SelectedItem;
Alternatively you can bind SelectedItem
to your source class or ViewModel
.
<Grid DataContext="MyViewModel"> <DataGrid ItemsSource="{Binding Path=Customers}" SelectedItem="{Binding Path=SelectedCustomer, Mode=TwoWay}"/> </Grid>
If you're using the MVVM pattern you can bind a SelectedRecord
property of your VM with SelectedItem
of the DataGrid, this way you always have the SelectedValue
in you VM. Otherwise you should use the SelectedIndex
property of the DataGrid.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With