WPF:绑定的ListViewItem的背景色为对象的十六进制字符串属性
-
21-08-2019 - |
题
嘿。我有了所谓BACKGROUNDCOLOR的字符串属性的对象。此字符串是一个颜色的十六进制表示。我不能改变该对象。
我结合这些对象的集合到ListView。我想这样做是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