我知道通过Dynamically setting the Header text of a Silverlight DataGrid Column将文本绑定到DataGrid标头是不可能的,但我在线跟踪一些代码示例以替换TextBlock作为标头。但是,无论我做什么,我必然会出现的文字都不会出现。
我的观点中的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 :(得分:0)
在您的TextBlock中放置一个datacontext
<TextBlock DataContext="" Text="{Binding Path=KeyListName}"/>
或强>
如果他们与您的UnitKey具有相同的datacontext
<dg:DataGridTextColumn x:Name="dgColumnUnit" Binding="{Binding Path=UnitKey}" IsReadOnly="True">
之所以没有绑定,是因为作为你的DataGridTextColumn的父已经绑定了,尝试调试它并查看你的输出窗口它会提示 KeyListName不能发现....