0

我有一个数据网格,我想在其上绑定列的前景色,如下所示:

<sdk:DataGridTextColumn Header="Bid Qty" Binding="{Binding Path=BidPrice.QuantityString}" Foreground="{Binding BidPrice.TextColour}" />

但我在 init 表单中收到此错误:

Set property 'System.Windows.Controls.DataGridTextColumn.Foreground' threw an exception. [Line: 95 Position: 106]

Object of type 'System.Windows.Data.Binding' cannot be converted to type 'System.Windows.Media.Brush'.

我尝试将 TextColour 的类型设置为 SolidColorBrush 但这没有帮助。

编辑:

投标价格是一种产品价格:

    public class ProductPrice
    {
        public SolidColorBrush TextColour { get; set; }
}

并设置如下:

private void SetColours(ProductPrice price, string firmPriceColour = "Black", string impliedPriceColour = "Black")
{
    if (price != null)
    {
        if (price.IsImplied.GetValueOrDefault(false))
            price.TextColour = ColourHelper.StringToColorBrush(impliedPriceColour);
        else
            price.TextColour = ColourHelper.StringToColorBrush(firmPriceColour);
    }
}

请注意,它可能为空。

4

1 回答 1

0

创建一个 SolidColorBrush 并将 BidPrice.TextColour 绑定到它的 Color 属性。然后将 DataGridTextColumn.Foreground 绑定到该画笔。

于 2013-07-29T15:15:01.873 回答