我最近也花了一些時間在這方面工作,這裏是我如何讓它爲其他人的利益工作。
首先聲明名稱空間向上,這樣我可以在xaml中簡短地指定它。
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
然後我聲明瞭標題樣式的靜態資源往上頂,以保持數據網格XAML清潔:
<navigation:Page.Resources>
<Style x:Key="NameStyle" TargetType="sdk:DataGridColumnHeader">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding Path=LocalizedStrings.Name, Source={StaticResource Language}}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="DescriptionStyle" TargetType="sdk:DataGridColumnHeader">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding Path=LocalizedStrings.Description, Source={StaticResource Language}}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</navigation:Page.Resources>
然後在您的數據網格XAML,你只需將DataGridTextColumns標題樣式設置爲你的靜態資源標題樣式。
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Width="Auto" FontSize="11" MinWidth="100" Binding="{Binding Name}" HeaderStyle="{StaticResource NameStyle}" />
<sdk:DataGridTextColumn Width="1*" FontSize="11" Binding="{Binding Description}" HeaderStyle="{StaticResource DescriptionStyle}" />
</sdk:DataGrid.Columns>
我原來的解決方案是從這個帖子:Dynamically setting the Header text of a Silverlight DataGrid Column
就收拾了一陣,因爲我有15個標題設置。
找到答案http://blogs.claritycon.com/blog/2011/03/07/datagridcolumn-bindable-header-for-localization-support-in-silverlight-4/ – Josh 2012-04-17 19:20:38