今天我注意到一个关于将 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 中绑定到视图模型有什么区别?