Ruth_S Ответов: 4

Держите ListViewItem выделенным после потери фокуса


Привет,

интересно, как сохранить выделенный элемент ListViewItem после перемещения фокуса на другой элемент управления.

Прямо сейчас я изменяю внешний вид элемента, устанавливая новый ControlTemplate, когда элемент выбран.
Мне кажется, там было свойство под названием ListView.HideSelection в элементе управления WinForms. Есть ли способ сделать это и в WPF???

Не могу себе представить, что это так трудно, хотя я ничего не добьюсь с помощью гугла :((

Спасибо

4 Ответов

Рейтинг:
2

Vineeth P Joseph

Привет,
Я думаю, что вы определяете новый шаблон элемента управления для ListViewItem.Подумай еще раз и попробуй. Теперь вы меняете шаблон на выбранном триггере справа.Вы должны здраво подумать о следующем триггере


<MultiTrigger>
                    <MultiTrigger.Conditions>
                        <Condition Property="Selector.IsSelected" Value="True">

                        </Condition>
                        <Condition Property="Selector.IsSelectionActive" Value="False">
                        </Condition>
                    </MultiTrigger.Conditions>
                  -------set the template here too---


Рейтинг:
2

User 3730470

Я нашел еще один раствор в воде. форумы MSDN.
Серая кисть ресурса элемента управления ListView перезаписывается.

<listview>
  <listview.resources>
    <solidcolorbrush x:key="{x:Static SystemColors.ControlBrushKey}" xmlns:x="#unknown">
        Color="{DynamicResource {x:Static SystemColors.HighlightColorKey}}"/>
  </solidcolorbrush></listview.resources>
</listview>


Рейтинг:
2

Frank,Lin

MyListBox.Resources[SystemColors.InactiveSelectionHighlightBrushKey] = SystemColors.HighlightBrush;
MyListBox.Resources[SystemColors.InactiveSelectionHighlightTextBrushKey] = SystemColors.HighlightTextBrush;

Это работает на меня!


Richard MacCutchan

Этот вопрос относится к ListView, а не к ListBox. А через 9 лет плакат, скорее всего, двинулся дальше.

Kats2512

Просто еще один спамер. Разместил точно такой же мусор по ссылке ниже в решении 2.

https://www.codeproject.com/Questions/752101/Why-is-Setting-InactiveSelectionHighlightBrushKey

Рейтинг:
0

CAD Guru Yong Kim

Принудительное выделение в событии LostFocus и очистка в событии GotFocus.
Установите HideSelection в True.

Private Sub lvGroup_LostFocus(sender As Object, e As EventArgs) обрабатывает lvGroup.Потеря фокуса
lvGroup.SelectedItems(0).BackColor = SystemColors.Выделять
lvGroup.SelectedItems(0).ForeColor = Цвет.Белый
Конец Подводной Лодки
Private Sub lvGroup_GotFocus(sender As Object, e As EventArgs) обрабатывает lvGroup.событие GotFocus
lvGroup.SelectedItems(0).BackColor = Цвет.Белый
lvGroup.SelectedItems(0).ForeColor = Цвет.Черный
Конец Подводной Лодки