无法在wpf中转换为datarowview

时间:2016-05-29 04:59:45

标签: c# wpf wpfdatagrid

DataGrid的IT Xaml代码

<DataGrid AutoGenerateColumns="True" HorizontalAlignment="Left" Margin="10,30,0,0" ItemsSource="{Binding}" VerticalAlignment="Top" Height="149" Width="356" Name="orderGrid"   SelectionMode="Single" SelectionUnit="FullRow" SelectionChanged="orderGrid_SelectionChanged" />

这是我的QUERY AND Item来源

var orders = (from ss in db.electronics_orders
                      select new { ss.id,Date = ss.orderdate,Product_Title=ss.Electronic.Name, Quantity = ss.qty, TPrice = ss.qty * ss.unitprice}).ToList();
        orderGrid.ItemsSource = orders;

我是否正在尝试将所选项目投射到datarowview

 try
            {
                DataRowView grid = (DataRowView)orderGrid.CurrentItem;
            }
            catch (Exception e1) {
                MessageBox.Show(e1.Message);
            }

但它显示错误

  

无法投射类型的对象   &#39;&LT;&GT; f__AnonymousType0 5[System.Int32,System.Nullable 1的System.DateTime],System.String,System.Nullable 1[System.Int32],System.Nullable 1 [System.Int32]]&#39;   输入&#39; System.Data.DataRow&#39;。

1 个答案:

答案 0 :(得分:0)

当您在linq(select new {ss.id,...})中进行选择时,您基本上会得到一个新的内部匿名类,它不是DataRow,就像它期望的那样。 您必须投射它,或使用您绑定的对象类型,以便它们“兼容”。