WPF: Liaison d'une couleur d'arrière-plan ListViewItem à une propriété String hexadécimal d'un objet

StackOverflow https://stackoverflow.com/questions/360369

Question

Hey. J'ai un objet qui a une propriété de chaîne appelée BackgroundColor. Cette chaîne est la représentation hexadécimale d'une couleur. Je ne peux pas changer cet objet.

Je liant une collection de ces objets à un listView. Ce que je voudrais faire est de lier l'arrière-plan de la ligne du listview à la propriété BackgroundColor de l'objet qui est affiché dans la ligne.

Quelle est la meilleure façon de ce?

Était-ce utile?

La solution

Je pense que l'aide d'un IValueConverter est la solution appropriée. Vous pouvez faire un HexConverter qui convertit la valeur hexadécimale de chaîne à couleur. Ce lien devrait vous aider à démarrer.

Autres conseils

Vous aurez envie d'utiliser un style pour lier l'arrière-plan de ListViewItem à l'élément de la ligne. L'article est DataContext par défaut du ListViewItem ce qui devrait être simple:

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:sys="clr-namespace:System;assembly=mscorlib"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid.Resources>
        <x:Array x:Key="colors" Type="{x:Type sys:String}">
            <sys:String>Red</sys:String>
            <sys:String>Yellow</sys:String>
            <sys:String>#0000FF</sys:String>
        </x:Array>
    </Grid.Resources>
    <ListView ItemsSource="{StaticResource colors}">
        <ListView.Resources>
            <Style TargetType="{x:Type ListViewItem}">
                <Setter Property="Background" Value="{Binding .}"/>
            </Style>
        </ListView.Resources>
    </ListView>
</Grid>

Au lieu de se lier à l'élément tout vous lier à la BackgroundColor, mais il devrait être similaire à ce qui précède. Vous devez avoir à utiliser un convertisseur avec la liaison à préfixe un « # », c'est le signal au BrushConverter intégré pour analyser comme hex.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top