как динамически изменять стили элементов listview во время выполнения?

#c# #wpf #visual-studio-2010

#c# #wpf #visual-studio-2010

Вопрос:

Я использую VS2010 — wpf — C#

У меня есть listview, который показывает цены ценных бумаг, и я хочу оформить строки listview тремя различными способами: зеленым, красным и оранжевым

Я не знаю, как написать код на C #, который повлиял бы на стили этих элементов listview во время выполнения при некоторых условиях, которые у меня есть???

Я не знаю, нуждается ли мой вопрос в дополнительных пояснениях, но если это так, пожалуйста, дайте мне знать

С наилучшими пожеланиями всем

Ответ №1:

Почему вы хотите сделать это во время выполнения, а не в XAML?

Я предполагаю, что красный / зеленый / оранжевый имеет какое-то значение. Настройте DataTrigger в ItemContainerStyle списка, который изменяет цвет на основе значения.

Вот пример использования свойства с именем Priority для элементов ListView

 <ListView>
    <ListView.ItemContainerStyle>
        <Style TargetType="{x:Type ListBoxItem}">
            <Setter Property="Foreground" Value="Green" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding Priority}" Value="2">
                    <Setter Property="Foreground" Value="Orange" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Priority}" Value="3">
                    <Setter Property="Foreground" Value="Red" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </ListView.ItemContainerStyle>
</ListView>
  

Комментарии:

1. @Moauayad Я не уверен, о чем вы спрашиваете, но поскольку вы приняли мой ответ, я предполагаю, что с вами все в порядке

2. Что, если я захочу изменить цвет или значение во время выполнения?

3. @SaudKhan Затем измените свойство bound… например, настройка Priority=2 сделала бы его оранжевым, в то время как Priority=3 сделала бы его красным.