Как получить значение и цвет текста ListViewItem в приложении WPF? - PullRequest
0 голосов
/ 31 августа 2018

Я хотел бы получить значение одной строки в моем ListViewItem элементе управления, а затем на основе этого значения решить, должен ли цвет быть красным или зеленым.

Я попробовал следующее:

foreach (var item in listView1.Items)
{
    var listViewItem = listView1.ItemContainerGenerator.ContainerFromItem(item) as ListViewItem;
    if (item.IsOnline == "online")
    {
        listViewItem.Foreground = Brushes.Green;
    }
    else
    {             
        listViewItem.Foreground = Brushes.Red;
    }
}

Но таким образом я не могу получить значение из item.IsOnline. Если я использую foreach, как это foreach (var item in listView1.Items), тогда я могу получить значения, но не могу изменить цвет переднего плана.

1 Ответ

0 голосов
/ 31 августа 2018

Вы должны определить ItemContainerStyle в вашей разметке XAML:

<ListView x:Name="listView1">
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="Foreground" Value="Red" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsOnline}" Value="online">
                    <Setter Property="Foreground" Value="Green" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </ListView.ItemContainerStyle>
</ListView>
...