Mik*_* B. 59 wpf datagrid selecteditem
我有一个DataGrid,绑定到Database表,我需要获取所选行的内容DataGrid,例如,我想在MessageBox所选行的内容中显示.
示例DataGrid:

所以,如果我选择第二行,我MessageBox必须显示如下内容:646 Jim Biology.
Ale*_*ide 129
您可以使用该SelectedItem属性获取当前选定的对象,然后可以将其强制转换为正确的类型.例如,如果您DataGrid绑定了一组Customer对象,则可以执行以下操作:
Customer customer = (Customer)myDataGrid.SelectedItem;
Run Code Online (Sandbox Code Playgroud)
或者,您可以绑定SelectedItem到您的源类或ViewModel.
<Grid DataContext="MyViewModel">
<DataGrid ItemsSource="{Binding Path=Customers}"
SelectedItem="{Binding Path=SelectedCustomer, Mode=TwoWay}"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)
ema*_*ema 18
如果您正在使用MVVM模式,则可以将SelectedRecordVM 的属性与SelectedItemDataGrid绑定,这样您就可以随身携带SelectedValueVM.否则,您应该使用SelectedIndexDataGrid 的属性.
Bah*_*din 12
public IEnumerable<DataGridRow> GetDataGridRows(DataGrid grid)
{
var itemsSource = grid.ItemsSource as IEnumerable;
if (null == itemsSource) yield return null;
foreach (var item in itemsSource)
{
var row = grid.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow;
if (null != row) yield return row;
}
}
private void DataGrid_Details_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
var row_list = GetDataGridRows(DataGrid_Details);
foreach (DataGridRow single_row in row_lis)
{
if (single_row.IsSelected == true)
{
MessageBox.Show("the row no."+single_row .GetIndex ().ToString ()+ " is selected!");
}
}
}
catch { }
}
Run Code Online (Sandbox Code Playgroud)
在这个 DataGrid dg 中这非常简单,项目类填充在 datagrid 中,listblock1 是一个基本框架。
private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
var row_list = (Item)dg.SelectedItem;
listblock1.Content = "You Selected: " + row_list.FirstName + " " + row_list.LastName;
}
catch { }
}
public class Item
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
196642 次 |
| 最近记录: |