2012-04-17 5 views
2

私はこのトピックについて多くの未回答の投稿を見てきましたが、私はまだこれを理解して残りの人を抱きしめていると信じる傾向があります。SilverlightでDataGridの列見出しをバインドする

私は、テンプレート列とテキスト列を混在させたDataGridを持っています。私はちょうどviewmodelのプロパティにヘッダーをバインドして、異なる言語の異なる文字列を使用できるようにする必要があります。

私はWPF datagrid header text bindingとそれからリンクされているすべての投稿を見ました。ここで提案されている方法のどれもがSilverlightで動作しません。

他にアイデアはありませんか?

+0

回答が見つかりましたhttp://blogs.claritycon.com/blog/2011/03/07/datagridcolumn-bindable-header-for-localization-support-in-silverlight-4/ – Josh

答えて

0

私は最近これに取り組んでいましたが、他の人々の利益のために働いています。

最初にネームスペースが宣言されていますので、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> 

私のオリジナルのソリューションは、このポストからだった:私は設定して15列ヘッダを持っていたとして

Dynamically setting the Header text of a Silverlight DataGrid Columnちょうど少しそれを片付け。

関連する問題