0

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

4

1 回答 1

0

这应该工作

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

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

高温高压

于 2010-08-24T18:27:45.787 回答