Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法从DataGrid获取选定的行值_C#_.net_Wpf_Datagrid - Fatal编程技术网

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 });
}