MVVM Как у меня может быть другой текстовый цвет в просмотре лжи - PullRequest
0 голосов
/ 29 декабря 2018

Как я могу изменить цвет строки одной строки.

<ListView ItemsSource="{Binding ListOfChar}">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="AAAA" DisplayMemberBinding="{Binding Path=AAAA}"/>               
            <GridViewColumn Header="XXXX" DisplayMemberBinding="{Binding Path=XXXX}"/>
            <GridViewColumn Header="BBBB" DisplayMemberBinding="{Binding Path=BBBB}"/>
        </GridView>
    </ListView.View>
</ListView>

Итак, у меня есть listView с 3 столбцами AAAA, XXXX, BBBB.Если столбец XXXX равен 1, тогда я хочу красный цвет, если равен 2, то синий, а если равен 3, то зеленый, в другом случае я хочу оставить черный

Примечание: XXXX - строка

1 Ответ

0 голосов
/ 29 декабря 2018

Создайте стиль для всех ваших ListViews, а затем используйте DataTrigger для установки цвета переднего плана, например:

<ListView.Resources>
    <Style TargetType="ListViewItem">
        <Setter Property="Foreground" Value="Red" />
        <Style.Triggers>
            <DataTrigger Binding="{Binding XXXX}" Value="{x:Null}">
                <Setter Property="Foreground" Value="Black" />
            </DataTrigger>
            <DataTrigger Binding="{Binding XXXX}" Value="">
                <Setter Property="Foreground" Value="Black" />
            </DataTrigger>
        </Style.Triggers>
    </Style>
</ListView.Resources>

Обратите внимание, что это очень простой случай и, следовательно, один из очень редких случаев, когда я 'Я бы сказал, что это нормально, просто сделайте это в XAML.Как только вы начнете добавлять какую-либо реальную логику, лучше связать свойство в вашей модели представления, которое вы создаете специально для этого (например, public bool IsError.....), а затем попросите модель представления обновлять его всякий раз, когда изменяется любое из других свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...