Вопрос

Я некоторое время пытался отобразить некоторые данные в списке/списках, которые были бы не сбитыми (я имею в виду не только список, но и элементы в нем).

Я пытался с обоими типами списка (Listbox и ListView), и я использовал их ItemTemplate и ItemContainerStyle. Везде, где я мог бы, я установил фокусируемое свойство на ложь.

Я не вижу другого способа отключения списка, но тогда я должен изменить весь его стиль, чтобы он не был отключен.

Я что -то пропустил? Есть ли список только для чтения, о котором я не знаю?

Спасибо за ваши идеи :)

Это было полезно?

Решение

Проблема, которую вы, вероятно, видите, заключается в том, что каждый отдельный элемент в списке подходит для фокусировки. Тем не менее, вы можете переопределить это ... попробуйте добавить это в свой Listbox:

  <ListBox.ItemContainerStyle>
    <Style TargetType="Control">
      <Setter Property="Focusable" Value="False" />
    </Style>
  </ListBox.ItemContainerStyle>

Обратите внимание, что это делает элементы небелектыми (на клавиатуре или мышью). Вы можете настроить выбранный элемент программно, но он больше не выделяется автоматически - так что на самом деле это ведет себя почти так же, как ItemsControl.

Другие советы

Используйте элемент -контроль с текстовыми блоками вместо Listbox

<ItemsControl ItemsSource="{Binding MyListBoxItemsSource}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding MyDisplayName}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top