今天我注意到有关将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中的viewmodel有什么区别?
答案 0 :(得分:0)
这应该有效
<TextBlock Text="{Binding MyDeviceViewModel.CategoryHeader}"/>
当您在同一个控件中时,不需要引用ElementName属性
HTH