невозможно привести к datarowview в wpf

Его код Xaml для DataGrid

<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__AnonymousType0< > 5[System.Int32,System.Nullable1[System.DateTime],System.Строка, Система.Nullable 1[System.Int32],System.Nullable1[System.Int32]]’
ввести ‘ System.Данные.DataRow’.

1 ответ

  1. Когда вы выбираете в linq (select new {ss.id,...}), вы в основном получаете новый внутренний анонимный класс , который не являетсяDataRow, как он ожидает.
    Вам придется либо привести его, либо использовать тип объекта, к которому вы привязываетесь, чтобы они были «совместимыми».