在列表视图 UWP 中为每个项目放置矩形颜色 XAML

Put rectangle color for each item in list view UWP XAML

我想为每个项目放置不同颜色的矩形,但我知道该怎么做。

我的XAML代码

 <ListView x:Name="listView1">
        <ListView.ItemTemplate>
            <DataTemplate x:DataType="x:String">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="47"/>
                        <ColumnDefinition/>
                    </Grid.ColumnDefinitions>
                    <Rectangle Fill="Red" Width="32" Height="32" 
                   HorizontalAlignment="Left"/>
                    <TextBlock Text="{x:Bind}" Foreground="Black" 
                       FontSize="15" Grid.Column="1"/>
                </Grid>
            </DataTemplate>
        </ListView.ItemTemplate>
        <x:String>White</x:String>
        <x:String>Red</x:String>
        <x:String>Yellow</x:String>
        <x:String>Blue</x:String>
        <x:String>Green</x:String>
        <x:String>Grey</x:String>
        <x:String>Black</x:String>
    </ListView>

This appear

您当前有一个引用颜色的数据模板,该颜色始终为 Red - 无论您的绑定值如何,RectangleFill 仍然是 Red添加到您的标签。

为了解决这个问题,您应该将 <Rectangle Fill="Red" Width="32" Height="32" HorizontalAlignment="Left"/> 替换为 <Rectangle Fill="{x:Bind}" Width="32" Height="32" HorizontalAlignment="Left"/>

新的{x:Bind}将您在下面设置的相关<x:String>引入到RectangleFill属性中,因此意味着您会看到正确的颜色。