WPF:关于DataGridTextColumns内部的绑定

时间:2010-08-24 12:10:49

标签: wpf binding header datagridtextcolumn

今天我注意到有关将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有什么区别?

1 个答案:

答案 0 :(得分:0)

这应该有效

<TextBlock Text="{Binding MyDeviceViewModel.CategoryHeader}"/>

当您在同一个控件中时,不需要引用ElementName属性

HTH