0

<ListView>我将如何利用Windows RT / Windows Store 应用程序中的控件(假设我有一个整数列表用作我的)在 Excel(没有灰线)中实现这种效果ItemsSource

本质上,我想知道根据每个数据绑定值的内容直接应用样式或设置背景颜色的最有效方法。

数据条

我们真的需要这样的东西。但看起来 Windows RT 应用程序不支持数据触发器。

4

1 回答 1

3

在您的ItemTemplete创建矩形上,然后Fill使用下面将其属性绑定到您的列表元素ValueConverter

public sealed class IntegerToColorBrushConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        switch ((int)value)
        {
            case 5:
                return new Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.Colors.Green);
            case 10:
                return new Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.Colors.Yellow);
            case 15:
                return new Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.Colors.Orange);
            case 25:
                return new Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.Colors.Red);
            case 0:
                return new Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.Colors.DarkGreen);
            default:
                return new Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.Colors.Transparent);
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}

XAML:

    <ResourceDictionary>
        <local:IntegerToColorBrushConverter x:Key="IntegerToColorBrushConverter"/>
        <DataTemplate x:Key="DataTemplate1">
            <Grid>
                <Rectangle Fill="{Binding Converter={StaticResource IntegerToColorBrushConverter}, Mode=OneWay}" />
            </Grid>
        </DataTemplate>
    </ResourceDictionary>

    <ListView ItemsSource="{Binding Elements}" ItemTemplate="{StaticResource DataTemplate1}"/>
于 2012-12-04T13:33:52.203 回答