C# 无法从DataGrid获取选定的行值
我写了下面的内容,从选定行特定的单元格值中获取值。但它不起作用。我已经尝试了很多,虽然相同的代码在我的项目和其他页面中也起作用。下面是代码,下面是堆栈跟踪:C# 无法从DataGrid获取选定的行值,c#,.net,wpf,datagrid,C#,.net,Wpf,Datagrid,我写了下面的内容,从选定行特定的单元格值中获取值。但它不起作用。我已经尝试了很多,虽然相同的代码在我的项目和其他页面中也起作用。下面是代码,下面是堆栈跟踪: gd.SelectedItem不是数据行视图,因为在类型转换后rowSelected是null。最有可能是匿名类型对象(例如,如果ItemsSource是根据实体框架查询结果设置的) 除非您将ItemsSource类型更改为DataView,否则我可以推荐两个选项: 使用动态类型: private void dg_SelectionCha
gd.SelectedItem
不是数据行视图,因为在类型转换后rowSelected
是null
。最有可能是匿名类型对象(例如,如果ItemsSource是根据实体框架查询结果设置的)
除非您将ItemsSource类型更改为DataView,否则我可以推荐两个选项:
使用动态类型:
private void dg_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataGrid gd = (DataGrid)sender;
dynamic rowSelected = gd.SelectedItem;
label16.Content = rowSelected.quantity;
}
使用绑定:
private void dg_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataGrid gd = (DataGrid)sender;
BindingOperations.SetBinding(label16, Label.ContentProperty, new Binding("quantity") { Source = gd.SelectedItem });
}
在我看来,它不像DataRowView
对象。更像是匿名类型的object,也许这会有所帮助:我已经尝试了很多,但都是徒劳的。虽然相同的代码行在另一个文件中以相同的方式工作。但如果不工作,则不是相同的方式。必须有一个区别,我基本上希望当datagrid行单击时,其特定的单元格值应该显示在标签中。如我在代码中所做的。一个小问题是,我认为此代码不能与按钮一起工作。单击eventin按钮。单击事件处理程序,sender
将成为按钮。您可以通过名称(label16
)访问标签,因此为DataGrid
指定一个名称(
),您将能够获取someDataGrid。在code中的任何位置选择editem
-behind@JahanzaibNiazi,+3不是负面声誉。要求投票是不道德的。请记住,Q和A因其质量和实用性而得票,而不显示研究成果的Q则被否决
private void dg_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataGrid gd = (DataGrid)sender;
BindingOperations.SetBinding(label16, Label.ContentProperty, new Binding("quantity") { Source = gd.SelectedItem });
}