Как связать мои элементы управления в WPF DataGridTemplateColumn с DataTable? - PullRequest
1 голос
/ 03 марта 2009

У меня есть DataGrid, привязанный к DataTable, для которого я хочу создать пользовательские столбцы для использования DataGridTemplateColumn, но я не уверен, как ссылаться на значение в ячейках DataTable. Каждый пример, который я вижу в Интернете, либо связывает DataTable и не меняет шаблоны, либо использует пользовательский объект и ссылается на свойства связанного объекта. Кто-нибудь знает, как ссылаться на значения, хранящиеся в DataTable из элемента управления в DataGridTemplateColumn?

Спасибо, Brian

Редактировать: теперь я вижу, что могу использовать имя столбца в таблице данных в качестве пути привязки. К сожалению, я собирался динамически назначать шаблоны столбцам, поэтому я не буду знать имя текущего столбца. Есть ли другой способ сделать то, что я ищу (назначить шаблон каждому столбцу или ячейке в DataGrid программно)?

1 Ответ

0 голосов
/ 20 апреля 2010

У меня та же проблема, и я должен сказать, что документация, которую Microsoft предоставляет для WPF DataGrid, является ПОЛНОСТЬЮ РУБИНСКОЙ. Я искал в интернете пример того, как это сделать, и обнаружил, что НЕТ, так что контроль явно неадекватен.

Единственное, что, похоже, работает на WPF Datagrid - это примитивные типы.

Я попытался сделать что-то простое, например создать DataTable моего пользовательского типа (например, Person) с некоторыми свойствами. Я испробовал все уловки, которые я читал, чтобы использовать DataGridTemplateColumn программно при привязке DataTable к WPF DataGrid, и во всех примерах даны ответы политика (таким образом, избегая реального вопроса).

Одно решение объявляет DataTemplate в XAML во время разработки, что бесполезно, поскольку DataTable является динамическим (поэтому не является ответом).

Самое близкое, что я получил, - это создание ObservableCollection и привязка его к DataGrid (опять же не реальный ответ).

Кроме этого. Ничто не связывает, независимо от того, сколько вещей я изменил или попробовал. Поэтому я получаю пустые элементы управления, что довольно раздражает.

...