Я просто нахожу свой путь с WPF/Datagrid/Linq, и я пытаюсь выяснить, как отображать данные из связанной таблицы в моем datagrid. Например, у меня есть 3 таблицы:Как отображать данные из связанных таблиц в WPF datagrid
- Клиенты: идентификатор, имя
- продукты: идентификатор, имя
- Приказы: идентификатор, CUSTOMERID, PRODUCTID
и я настроил отношения в таблицах БД. Я добавил таблицы как набор данных C#, который создал мои классы-оболочки. Теперь я хочу привязать запрос к нескольким различным файлам данных WPF, чтобы получить следующее:
- список заказов | Идентификатор заказа | Название продукта | Имя клиента |
- список клиентов as | Имя клиента | Сводка заказов (например, список строк, разделенных запятыми) |
Как я могу указать DataContext или ItemsSource в своем XAML для отображения этой информации из других таблиц? Я использую ObjectDataProvider
s для обеспечения поддержки времени разработки, если это имеет значение.
Я видел этот вопрос: How to bind WPF Datagrid to a joined table, который создает новый класс для отображения информации для таблицы. Является ли это тем, что мне нужно сделать, а не указывать привязку?
EDIT:
Я имел немного успеха с помощью 2-го метода выше. Интересно, могу ли я использовать привязки для достижения того же самого, не требуя явного запроса select
для создания новых элементов. У меня есть запрос, который я карту в DataGrid:
var q = from d in dbMan.dataset.Orders
select new {
id=d.id,
productName = d.ProductsRow.name,
custName = d.CustomersRow.name };
и затем связываются в XAML:
<my:DataGrid.Columns>
<my:DataGridTextColumn Header="id" Binding="{Binding id}" />
<my:DataGridTextColumn Header="Product Name" Binding="{Binding productName}" />
<my:DataGridTextColumn Header="Customer Name" Binding="{Binding custName}" />
</my:DataGrid.Columns>
Как мне получить это, чтобы объединить поля из более чем одной таблицы? –
Спасибо - эти дополнительные шаги, необходимые для соединения, а затем преобразование в DataTable не было очевидно для меня. –