26.07.2022 / 15:51 | |
Витаминыч Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| Гугл поломался, хз где почитать
Есть checkbox, есть listview. В зависимости от того, включен ли флажок или нет, а также от свойства listviewitem нужно менять background элементов списка. Грубо говоря, включать и выключать подсветку у определенных элементов. Как это провернуть можно?
__________________
わからない!! |
26.07.2022 / 17:22 | |
Helltar Пользователь Сейчас: Offline
Регистрация: 29.11.2011
| Ты писал выше WPF, как там хз, но помню на WinForms параметры почти идентичны лазаровских, а там как то так: В листвиеве должно быть событие типа OnSelectItem или OnSelectionChanged, и там работать, аля: listview_onSelectItem(object sender) {
item = ListViewItem(sender);
if checkbox.Checked && (item.title == "hello")
item.background = red;
}
Или ты конкретный код хочешь? |
27.07.2022 / 06:59 | |
Витаминыч Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| Helltar, не, код есть, только не работает В wpf есть привязки (bindings), плюс у меня паттерн mvvm, доступа к элементам окна напрямую нет. События не используются, вместо этого у меня настроен datatrigger. К примеру, у какого-то элемента списка есть bool свойство. Если оно равно true, то можно установить этому элементу другой стиль. У меня это свойство называется IsPF<CheckBox IsChecked="{Binding UseHighlight}"/>
<ListView ItemsSource="{Binding ProductGroups}" SelectedItem="{Binding SelectedGroup, Mode=TwoWay}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Style.Triggers>
<DataTrigger Binding="{Binding IsPF}" Value="True">
<Setter Property="Background" Value="GreenYellow"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<!-- столбцы -->
<GridViewColumn Header="ПФ" DisplayMemberBinding="{Binding IsPF, Converter={helpers:BoolToIconConverter}}"/>
<!-- столбцы -->
</GridView>
</ListView.View>
</ListView>
В доках просто не могу найти, как использовать значение UseHighlight, чтобы включать или выключать этот триггер. __________________
わからない!! Изменено Витаминыч (27.07 / 07:14) (всего 2 раза) |
27.07.2022 / 13:34 | |
Helltar Пользователь Сейчас: Offline
Регистрация: 29.11.2011
| Витаминыч, ну триггеры это те же события только называются триггерами А зачем тебе UseHighlight если триггер на Background стоит от значения IsPF? В интернетах пишут как то так если сразу на чекбокс триггерить: ...
<Style TargetType="ListViewItem">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=checkBox1, Path=IsChecked}" Value="True">
<Setter Property="Background" Value="GreenYellow"/>
</DataTrigger>
</Style.Triggers>
</Style>
...
Изменено Helltar (27.07 / 13:36) (всего 1 раз) |
27.07.2022 / 14:21 | |
Витаминыч Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| Helltar, включать и выключать подсветку же Так то оно да, отдельно на чб работает, но тогда как привязаться еще и к isPf? Думаю, мб как-то через мультитриггер или мультибиндинг можно... 🧐 Даже если убрать триггер от ispf, а сразу задать стиль элемента, то как тогда реагировать на чб и выкл/вкл стиль? 🤔 __________________
わからない!! |
27.07.2022 / 16:15 | |
Helltar Пользователь Сейчас: Offline
Регистрация: 29.11.2011
| Так то оно да, отдельно на чб работает, но тогда как привязаться еще и к isPf? Думаю, мб как-то через мультитриггер или мультибиндинг можно... Думаю да, https://metanit.com/sharp/wpf/10.2.php |