0

<ListView>Windows RT / Windows Storeアプリのコントロールを使用して(灰色の線なしで)Excelでこの種の効果をどのように実現しますか(使用する整数のリストがあると仮定しますItemsSource)。

基本的に、各データバインディング値が何を保持しているかに応じて、スタイルを適用したり、背景色を直接設定したりするための最も効果的な方法を知りたいと思います。

データバー

私たちは本当にこのようなものが必要です。ただし、データトリガーはWindowsRTアプリではサポートされていないようです。

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 に答える