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);
    }
}

null になる可能性があることに注意してください。

4

1 に答える 1

0

SolidColorBrush を作成し、BidPrice.TextColour をその Color プロパティにバインドします。次に、DataGridTextColumn.Foreground をそのブラシにバインドします。

于 2013-07-29T15:15:01.873 に答える