如何使用Windows RT / Windows应用商店应用中的<ListView>
控件在Excel(没有灰线)中看到这种效果(假设我有一个整数列表用作我的{{ 1}})。
从本质上讲,我想知道直接应用样式或设置背景颜色的最有效方法,具体取决于每个数据绑定值的含义。
我们真的需要something like this。但看起来Windows RT应用程序不支持数据触发器。
答案 0 :(得分: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}"/>