uwp:如何根据listview项的值更改listview项的背景颜色?

Ric*_* S. 3 c# xaml win-universal-app

编辑:UWP App与WPF应用程序不是100%相同.

我有一个带有ListView的uwp应用程序.在ListView中,我使用带有测试类的DataTemplate.它显示测试和点的名称.

我想要完成的是一个触发器!检查点是否大于ie:50然后将ListViewItem 的背景颜色更改为红色.

            <ListView.ItemTemplate>
                <DataTemplate x:DataType="data:Tests">
                    <Grid>
                        <TextBlock Text="{x:Bind Name}"  />
                        <TextBlock Text="{x:Bind Points}"  />
                    </Grid>
                </DataTemplate>
            </ListView.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)

小智 8

我发现很难让我的listview项目显示替代颜色.最后,我设法通过为ListView事件处理程序ContainerContentChanging指定一个方法来完成此操作.

在此输入图像描述

在列表视图中填充每个项目时,将调用分配给此事件的方法.这提供了更改列表视图项的前景,背景,文本等的功能

        private void listViewContentChange(ListViewBase sender, ContainerContentChangingEventArgs args) {
            //this method is called for each item while it gets loaded in the listview. Here we are changing background color and text color
            if (args.ItemIndex == 0) {
              //colour for header
              args.ItemContainer.Background = (SolidColorBrush) Application.Current.Resources["grey"];
            } else {
              if (args.ItemIndex % 2 == 0) {
                //lighter colour 
                args.ItemContainer.Background = (SolidColorBrush) Application.Current.Resources["lightblue"];
              } else {
                //Dark colour 
                args.ItemContainer.Background = (SolidColorBrush) Application.Current.Resources["blue"];
              }
            }
Run Code Online (Sandbox Code Playgroud)