我想从WPF中的DataGrid中获取选定的行值,它证明是非常令人沮丧的。虽然在WinForms中很简单。获取选定的行值
如何从wpf中的datagrid控件获取指定的单行值或?
我已经使用了几个我在网上找到的代码片段,它们都给了我整行的内容,包括列名!
我曾尝试:
string value = dataGrid1.SelectedItems[0].ToString();
string value = dataGrid1.SelectedCells[dataGrid1.SelectedItems[0]].ToString();
我下的WPF控件部分看上去MSDN上,但不能看我怎么可以在任何地方得到一个行值。
我一直找回的是: { OrderId = d#dfuzJRo , UserId = 56, OrderTotal = , Freight = , DeliveryStatus = , OrderStatus = Pending, TransactionId = , OrderDate = 16/08/2011 9:12:00 PM }
- 这不是我所追求的。
我想双击一行时获得OrderId。
我的XAML是设置这样的:
<DataGrid AutoGenerateColumns="True" Name="dataGrid1" DataContext="{Binding}" ItemsSource="{Binding}" HorizontalGridLinesBrush="#4D0090FF" VerticalGridLinesBrush="#A30091FF" AlternatingRowBackground="#200098FF" BorderThickness="0" ClipToBounds="False" MouseDoubleClick="dataGrid1_MouseDoubleClick" Margin="0,25,0,0" VerticalAlignment="Stretch"></DataGrid>
而且我成功地获得DB信息(基于关闭MSDN教程),如:
private void ViewOrders()
{
ObjectQuery<Order> orders = dEntities.Orders;
var query = from order in orders
orderby order.OrderStatus
select new
{
order.OrderId,
order.UserId,
order.OrderTotal,
order.Freight,
order.DeliveryStatus,
order.OrderStatus,
order.TransactionId,
order.OrderDate
};
dataGrid1.ItemsSource = query.ToList();
}
“SelectedItem”究竟出了什么问题?如果你想要一个详细的答案,请提供一些细节。你有什么约束力,以及如何? –
Thanks @Henk,我用我的代码更新了我的问题以及我试过的东西等。 – bendr
您是否尝试过类似Order Order = dataGrid.SelectedItem作为Order,然后var orderId = order.OrderId? –