我将对象存储在我在GridView中显示的数据库中。我正在绑定数据库中的每个属性。 color属性存储为Hex值。
我正在尝试使用转换器函数绑定此十六进制值,如下所示,现在每次都返回Red。
它似乎正在工作,但最终会返回以下错误: 程序'[5548] TranslatorService.Example.exe:Managed(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>
谢谢
答案 0 :(得分:3)
根据我的经验,您需要指定画笔,而不是颜色:
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 255, 0, 0);
或
mySolidColorBrush.Color = Color.Red;
答案 1 :(得分:0)
重新编译后似乎解决了这个问题。
答案 2 :(得分:0)
在您发布的转换器代码中,您将返回Color.Red,因此无论value
是什么,您每次都会获得红色。