2010-12-01 68 views
0

我知道它不是通过Dynamically setting the Header text of a Silverlight DataGrid Column将文本绑定到DataGrid标题的可能性,但我在线地关注了一些代码示例以将TextBlock替换为标题。然而,无论我做什么,我所做的文字都不会显示出来。在Silverlight中绑定DataGridHeader ContentTemplate

我的XML从我的观点:

<dg:DataGridTextColumn Binding="{Binding Path=UnitKey}" IsReadOnly="True"> 
<dg:DataGridTextColumn.HeaderStyle> 
    <Style TargetType="dataprimitives:DataGridColumnHeader"> 
    <Setter Property="ContentTemplate"> 
    <Setter.Value> 
    <DataTemplate> 
     <TextBlock Text="{Binding Path=KeyListName}"/> 
    </DataTemplate> 
    </Setter.Value> 
    </Setter> 
    </Style> 
</dg:DataGridTextColumn.HeaderStyle> 
</dg:DataGridTextColumn> 

我的C#从我的视图模型:

public string KeyListName 
    { 
     get { return keyListName; } 
     set 
     { 
      keyListName = value; 
      raisePropertyChanged("KeyListName"); 
     } 
    } 

我想不出什么我忽略了..在此先感谢您的帮助!

+0

尝试使用DataGridTemplateColumn而不是DataGridTextColumn – dparker 2010-12-02 13:53:59

回答

0

把一个DataContext在你的TextBlock

<TextBlock DataContext="" Text="{Binding Path=KeyListName}"/> 

OR

如果它们具有相同的datacontext与UnitKey

​​

之所以其没有约束力,因为这是你的DataGridTextColumn已被绑定的父母,尝试调试它,看看你的Output窗口它会提示KeyListName不能找到....