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.Nullable1[System.Int32],System.Nullable
1 [System.Int32]]&#39; 输入&#39; System.Data.DataRow&#39;。
答案 0 :(得分:0)
当您在linq(select new {ss.id,...}
)中进行选择时,您基本上会得到一个新的内部匿名类,它不是DataRow
,就像它期望的那样。
您必须投射它,或使用您绑定的对象类型,以便它们“兼容”。