WPF使用值转换器设置DataGrid Column前台的问题

时间:2020-04-15 23:39:26

标签: c# wpf datagrid ivalueconverter

我想使用一个值转换器根据单元格的值是否大于十来更改数据网格单元格的文本颜色。我已经按如下所示进行了设置,但是转换器似乎并未启动。我能够将单元格的实际文本设置为颜色值,但似乎无法设置实际的文本颜色。

xaml看起来像这样:

    <DataGrid Margin="321,50,32,129" AutoGenerateColumns="False" ItemsSource="{Binding Path=SearchableOrders}">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Customer" Binding="{Binding Customer}"/>
            <DataGridTextColumn Header="Product" Binding="{Binding Product}"/>
            <DataGridTextColumn Header="Quantity"  Binding="{Binding Quantity}" Foreground="{Binding Path=Quantity, Converter={StaticResource myConverter}}"/>
            <DataGridTextColumn Header="Total" Binding="{Binding Total}"/>
        </DataGrid.Columns>
    </DataGrid>

此处有资源部分:

<Window.Resources>
    <local:OrderConverter x:Key="myConverter"/>
</Window.Resources>

最后,OrderConverter类:

class OrderConverter: IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        int quanitity = int.Parse(value.ToString());
        if (quanitity < 10)
        {
            return new SolidColorBrush(Colors.Black);
        }
        else
        {
            return new SolidColorBrush(Colors.Red);
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

任何帮助将不胜感激。

0 个答案:

没有答案
相关问题