2010-09-16 5 views
1

У меня есть datagrid, в котором я вручную указываю столбцы (AutoGenerateColumns = "false"). Я использую MVVM, и я хотел бы связать заголовок столбца (текст), чтобы получить его из моего ViewModel. Но я не могу найти способ сделать это.WPF: привязка заголовка столбца DataGrid к ViewModel

Ближе всего я нашел это: Wpf Toolkit. Bind DataGrid Column Header to DynamicResource ... которое является «трюком», с которым вы можете связать заголовок столбца в строку статический объявленной в XAML. Но мне нужно получить его из моего ViewModel.

Причина, по которой я хочу, заключается в том, что текст, который я хочу использовать в качестве заголовка столбца, будет показан в нескольких местах по всему графическому интерфейсу. Чтобы убедиться, что на самом деле все одинаково, я хочу, чтобы он был доступен в коде. И я не могу хранить строки в файле ресурсов XAML, потому что мне также нужен доступ к этим строкам в коде.

Я использую RadGridView от TeleRik, но я предполагаю, что у меня будет такая же проблема, если я стандартный gridview.

Любые советы оценены! Благодаря!

ответ

2

В Silverlight Я попытался следующие:

<DataGridTextColumn Header="{Binding ElementName=LayoutRoot, Path=DataContext.MyProperty}" ... /> 

(LayoutRoot является первым элементом управления в Window/UserControl, MyProperty что-то в VM) Это не работает, потому что столбец не имеет доступа к визуальное дерево.

Возможно, стоит попробовать в WPF с вашей сеткой.

+1

Это работает! Большое спасибо Timores !! :) – haagel

+0

Не работает для меня в WPF 4.5. Ошибка «Наставник Framework не найден». Я использовал DataGridTemplateColumn –

Смежные вопросы