2013-03-18 3 views
2

У меня есть объекты, хранящиеся в базе данных, которую я показываю в GridView. Я связываю каждое из своих свойств из базы данных. Свойство цвета сохраняется как значение Hex.Значение привязки привязки к цвету в XAML

Я пытаюсь связать это шестнадцатеричное значение с помощью функции преобразователя, как показано ниже, и просто возвращать красный каждый раз на данный момент.

Это, кажется, работает, но в конце концов возвращает следующее сообщение об ошибке: Программа «[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> 

Спасибо вам

ответ

3

По моему опыту, что вам нужно Ассинг кистью, а не цвет:

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

или

mySolidColorBrush.Color = Color.Red; 
+0

Извините, я забыл обновить свой код. Я делаю это в настоящее время. – Dan14021

0

Проблема, кажется, решена после перекомпиляции.

0

В вашем опубликованном коде конвертера вы возвращаете Color.Red, поэтому независимо от того, что такое value, вы будете получать Red каждый раз.

Смежные вопросы