2

我将对象存储在我在 GridView 中显示的数据库中。我正在从数据库中绑定它们的每个属性。颜色属性存储为十六进制值。

我正在尝试使用如下所示的转换器函数绑定此十六进制值,并且现在每次都返回红色。

它似乎正在工作,但最终返回以下错误:程序“[5548] TranslatorService.Example.exe:托管(v4.0.30319)”已退出,代码为-1073741189(0xc000027b)。

谁能告诉我我做错了什么?

代码隐藏:

public class StringToColorConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, String language)
    {
        return Colors.Red;
    }

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

XAML:

 <Grid.Background>
                        <SolidColorBrush Color="{Binding Path=ColorHex, Converter={StaticResource ColorConverter}}" />
                    </Grid.Background>

谢谢

4

3 回答 3

3

根据我的经验,您需要使用画笔,而不是颜色:

SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 255, 0, 0);

或者

mySolidColorBrush.Color = Color.Red;
于 2013-03-18T06:13:27.500 回答
0

在您发布的转换器代码中,您将返回 Color.Red,因此无论是什么value,您每次都会得到 Red。

于 2014-02-04T20:11:21.330 回答
0

重新编译后问题似乎解决了。

于 2013-03-21T03:48:32.370 回答