嘿。我有了所谓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把它解析为十六进制。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top