【问题标题】:unable to cast to datarowview in wpf无法在 wpf 中转换为 datarowview
【发布时间】:2016-05-29 13:15:11
【问题描述】:

用于 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" />

这是我的查询和项目来源

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

但它显示错误

无法转换类型的对象 'f__AnonymousType05[System.Int32,System.Nullable1[System.DateTime],System.String,System.Nullable1[System.Int32],System.Nullable1[System.Int32]]' 键入“System.Data.DataRow”。

【问题讨论】:

    标签: c# wpf wpfdatagrid


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多