次のように、列の前景色をバインドしたいデータグリッドがあります。
<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 になる可能性があることに注意してください。