У меня возникла проблема с получением данных gridview и преобразованием его в DataTable
. На самом деле его, как некоторые из датааридов в моей заявке, имеют ItemsSource
, которые я могу отличить как DataView
, но другой получил ItemsSource
, определенный в приложении.Получите данные DataGrid типа Data и литые как это
Например:
DataGrid1 - ItemsSource = DataView (прямо из базы данных) DataGrid2 - ItemsSource = ObservableCollection Продукта DataGrid3 - ItemsSource = ObservaleCollection Категорий
Ошибки я получаю:
Тип объекта
System.Collections.ObjectModel.ObservableCollection`1[myApp.Product]
типSystem.Data.DataView
.
Я хочу, чтобы достичь чего-то вроде этого:
DataTable dt = null;
try
{
dt = ((DataView)dg.ItemsSource).ToTable();
}
catch
{
Type t = dg.ItemsSource.GetType();
dt = ((t)dg.ItemsSource).ToTable();
}
Так на самом деле я хотел бы получить коллекцию в качестве объекта и бросить ItemsSource
в DataTable
.
Возможно ли это?
Спасибо за быстрый ответ, но на самом деле это первый раз, когда я вижу что-то вроде явного оператора. Если возможно, можете ли вы поделиться некоторым примером кода, как его использовать? Например, для типа «Продукт». Заранее спасибо! – user13657
Я изменил первую ссылку в своем ответе (явный (ссылка на C#)) на страницу, объясняющую ее использование, и предоставляет примеры на C#. Дополнительную информацию см. На этой странице. – Sheridan
Хм, в примере, который вы показываете, есть Fahrenheit f = new Fahrenheit (100.0f); , которые запускают открытый статический явный оператор Celsius (Fahrenheit f) с параметром. Так мой, может быть, глупый вопрос в том, что мне следует передать, чтобы получить объект возврата как datatable? – user13657