Сегодня я заметил странное поведение, связывающее заголовок DataGridColumn с ViewModel.
Следующее связывание работает отлично (имя DataGrid - MyGrid):
<DataGridTextColumn Binding="{Binding Name}" Width="*" CanUserReorder="False" CanUserResize="False" IsReadOnly="True">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding ElementName=MyGrid, Path=DataContext.MyDeviceViewModel.CategoryHeader}"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
Принимая во внимание, чтоследующее не работает (жалуется, что MyGrid не может быть найден):
<DataGridTextColumn Binding="{Binding Name}" Width="*" CanUserReorder="False" CanUserResize="False" IsReadOnly="True">
<DataGridTextColumn.Header>
<TextBlock Text="{Binding ElementName=MyGrid, Path=DataContext.MyDeviceViewModel.CategoryHeader}"/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
В чем разница между привязкой к модели представления в шаблоне или непосредственно в UIElement?