2017-02-15 37 views
0

我有一個應用程序,用戶可以切換到4種不同的顏色主題中的一種。對於那個顏色主題,我使用4個不同的xaml資源字典。 另外應用程序正在使用綁定到從數據庫加載的數據表的數據網格。這些數據網格總是具有與其他列不同的第一列。WPF DataGrid中整列的文本前景色

用戶切換主題時發生問題。除了第一列中的文本之外,所有內容都可以正確更改(根據res.dictionry中的設置)。

這是我在res中定義的筆刷。字典(名稱相同,但不同的顏色在每一個字典文件):

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

然後這是我的DataGrid定義:

<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> 

難道你們幫助我如何使這個專欄的前景與不斷變化的改變顏色主題? 任何解決方案是讚賞! 謝謝。

回答

0

定義單元格樣式引用您的資源

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

應用樣式到您的列定義

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

如此簡單和優雅的解決方案!它很棒。非常感謝! –

+0

很高興這有助於:)不要忘記標記了一個問題,回答是否一切正常;)編碼愉快! – Bruno