WPF: относительно привязки внутри DataGridTextColumns
Сегодня я заметил странное поведение, связывающее заголовок 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?
1 ответ
Это должно работать
<TextBlock Text="{Binding MyDeviceViewModel.CategoryHeader}"/>
Вам не нужно ссылаться на свойство ElementName, когда вы находитесь в том же элементе управления
НТН