2017-02-15 3 views
0

Ich habe eine Anwendung, die Benutzer zu einem von 4 verschiedenen Farbthemen wechseln kann. Für diese Farbthemen verwende ich 4 verschiedene xaml Ressourcenwörterbücher. Auch Anwendung verwendet Datagrids, die an Databases gebunden sind, die von DB geladen werden. Diese Datagrids haben immer eine andere erste Spalte als die anderen Spalten.WPF Text Vordergrundfarbe der gesamten Spalte in DataGrid

Problem tritt auf, wenn der Benutzer das Thema wechselt. Alles ändert sich korrekt (entsprechend den Einstellungen in res. Dictionry) außer Text in der ersten Spalte.

Hier ist meine Definition von Pinsel in res. Wörterbücher (gleiche Namen, aber unterschiedliche Farbe in jeder Wörterbuch-Datei):

<SolidColorBrush x:Key="textBrush" Color="LightGreen" /> 

Und dann ist meine Datagrid Definition:

<DataGrid Name="coilTabDG" AutoGenerateColumns="False" Grid.Column="3" Grid.ColumnSpan="1" Grid.Row="1" Grid.RowSpan="6" HorizontalAlignment="Stretch" Margin="5,5,5,5" VerticalAlignment="Stretch" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" ItemsSource="{Binding}" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="False" CanUserResizeRows="False" SelectionUnit="FullRow" HeadersVisibility="Column" > 
      <DataGrid.Columns> 
       <DataGridTextColumn Header="coilNumber" Width="100*" Foreground="{DynamicResource textBrush}" Binding="{Binding Path='coilNum'}"> 
       </DataGridTextColumn> 

       <DataGridTextColumn Header="Thickness" Width="100*" Binding="{Binding Path='thick'}"> 
       </DataGridTextColumn> 

       <DataGridTextColumn Header="Grade" Width="100*" Binding="{Binding Path='grade'}"> 
       </DataGridTextColumn> 
      </DataGrid.Columns> 
     </DataGrid> 

Können Sie Kerle mir helfen, wie dieser Spalts Vordergrund mit wechselnden der Veränderung zu machen das Farbthema? Jede Lösung wird geschätzt! Danke.

Antwort

0

Definieren Sie eine Zelle Stil Referenzierung Ihre Ressource

<Style x:Key="CurrencyCellStyle" TargetType="{x:Type DataGridCell}"> 
     <Setter Property="Foreground" Value="{DynamicResource textBrush}" /> 
    </Style> 

den Stil auf Ihre Spaltendefinition Nehmen

<DataGridTextColumn Header="coilNumber" Width="100*" CellStyle="{StaticResource CurrencyCellStyle}" Binding="{Binding Path='coilNum'}"/> 
+0

So einfache und elegante Lösung! Es funktioniert großartig. Danke vielmals! –

+0

Froh, das hilft :) Vergessen Sie nicht, die Frage als beantwortet zu markieren, wenn alles in Ordnung ist;) Happy coding! – Bruno

Verwandte Themen