WPF:オブジェクトの16進数文字列プロパティにのListViewItemの背景色をバインド

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

質問

ねえ。私はBackgroundColorを呼ばれる文字列プロパティを持つオブジェクトを持っています。この文字列は、カラーの16進数表現です。私は、このオブジェクトを変更することはできません。

私は、ListViewコントロールにこれらのオブジェクトのコレクションを結合しています。私は何をしたいの行に表示されているオブジェクトのbackgroundColorプロパティにリストビューの行の背景をバインドしている。

このへの最善の方法は何ですか?

役に立ちましたか?

解決

私は思う IValueConverterする適切なソリューションです。あなたは色に、文字列進値に変換HexConverterを作ることができます。そのリンクはあなたが始める必要があります。

他のヒント

あなたは、行の項目にのListViewItemの背景をバインドするためにスタイルを使用したいと思います。アイテムはので、これは簡単でなければならないのListViewItemのデフォルトのDataContextです。

<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>

の代わりにあなたがBackgroundColorをに結合します全体の項目に結合するが、それは上記のようになります。あなたは、これはビルトインBrushConverter進としてそれを解析することにシグナルである、「#」を接頭辞に結合して、コンバータを使用する必要がありきます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top