2010-08-24 16 views
0

今天我注意到了一个有关将DataGridColumn的头绑定到ViewModel的奇怪行为。WPF:关于DataGridTextColumns里面的绑定

的完美结合后的作品(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中的视图模型?

回答

0

这应该工作

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

你并不需要参考的ElementName属性,当你在同一控制

HTH