2013-03-18 96 views
2

我的對象存儲在一個數據庫中,我在GridView中顯示。我綁定了數據庫中的每個屬性。顏色屬性存儲爲十六進制值。在XAML中將十六進制值綁定到顏色

我想使用如下所示的轉換函數來綁定這個十六進制值,並且現在只是每次都返回紅色。

它似乎在工作,但它最終返回以下錯誤: 程序'[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> 

謝謝

回答

3

以我的經驗,你需要assing一刷,而不是顏色:

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

mySolidColorBrush.Color = Color.Red; 
+0

對不起,我忘了更新我的代碼。我目前正在這樣做。 – Dan14021 2013-03-18 06:19:08

0

該問題似乎在重新編譯後得到解決。

0

在您發佈的轉換器代碼中,您將返回Color.Red,因此不管value是什麼,您每次都會得到紅色。