WPF:オブジェクトの16進数文字列プロパティにのListViewItemの背景色をバインド
-
21-08-2019 - |
質問
ねえ。私は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進としてそれを解析することにシグナルである、「#」を接頭辞に結合して、コンバータを使用する必要がありきます。
所属していません StackOverflow