Failed to assign to property 'Microsoft.Toolkit.Uwp.UI.Controls.DataGridTextColumn.Foreground

250 Views Asked by At

UWP file explorer app

I am trying to use a ThemeResource in foreground for a DataGridTextColumn, but when opening the app it crashes, and I get this error:

Failed to assign to property 'Microsoft.Toolkit.Uwp.UI.Controls.DataGridTextColumn.Foreground

App.xaml - ThemeDictionaries

<ResourceDictionary x:Key="Light">
    <SolidColorBrush x:Key="SystemColorGrayTextColor" Color="#99000000" />  
</ResourceDictionary>

<ResourceDictionary x:Key="Dark">
    <SolidColorBrush x:Key="SystemColorGrayTextColor" Color="#99FFFFFF" />
</ResourceDictionary>

DataGridTextColumn

<controls:DataGridTextColumn
    x:Name="sizeColumn"
    x:Uid="sizeColumn"
    Width="Auto"
    MinWidth="100"
    Binding="{Binding FileSize}"
    DisplayIndex="5"
    FontSize="14"
    Header="Size"
    IsReadOnly="True"
    Tag="Size" 
    Foreground="{ThemeResource SystemColorGrayTextColor}">
    <ToolTipService.ToolTip>
        <ToolTip Content="{Binding FolderTooltipText}" />
    </ToolTipService.ToolTip>
</controls:DataGridTextColumn>
  • Visual Studio 2019 v16.6.5
  • Windows 10 2004 (19041.388)
  • All packages updated
1

There are 1 best solutions below

4
On BEST ANSWER

This is a legacy problem. If you need to use ThemeResouce, you cannot directly assign values to DataGridTextColumn, but you need to use CellStyle:

<controls:DataGridTextColumn 
        ...>
    <controls:DataGridTextColumn.CellStyle>
        <Style TargetType="controls:DataGridCell">
            <Setter Property="Foreground" Value="{ThemeResource SystemColorGrayTextColor}" />
        </Style>
    </controls:DataGridTextColumn.CellStyle>
</controls:DataGridTextColumn>