ListBox

Последнее обновление: 14.04.2017

Элемент ListBox представляет собой обычный список. Содержит коллекцию элементов ListBoxItem, которые являются элементами управления содержимым. Также ListBox может содержать любые другие элементы, например:

<ListBox Name="phonesList">
    <TextBlock FontWeight="Bold"  Text="Новинки 2017 года" />
    <ListBoxItem Background="LightGray">LG G6</ListBoxItem>
    <ListBoxItem>Huawei P10</ListBoxItem>
    <ListBoxItem Background="LightGray">iPhone 8</ListBoxItem>
    <ListBoxItem>Samsung Galaxy S8</ListBoxItem>
    <ListBoxItem Background="LightGray">Xiaomi Mi6</ListBoxItem>
    <ListBoxItem>HTC U Ultra</ListBoxItem>
</ListBox>
ListBox в Universal Windows Platform

Все эти элементы будут находиться в коллекции phonesList.Items и, таким образом, по счетчику мы сможем к ним обратиться, например, phonesList.Items[0] - первый элемент ListBox, который в данном случае представляет TextBlock. Также мы можем установить элемент:

phonesList.Items[2]="Google Pixel";

Компонент ListBoxItem представляет элемент управления содержимым, поэтому также мы можем задавать через его свойство Content более сложные композиции элементов, например:

<ListBox Name="Photos" Background="Lavender">
    <ListBoxItem Margin="3">
        <StackPanel Orientation="Horizontal">
            <Image Source="/assets/oduvanchiki.jpg" Width="60" />
            <TextBlock Margin="15 0 0 0">Одуванчики</TextBlock>
        </StackPanel>
    </ListBoxItem>
    <StackPanel Orientation="Horizontal">
        <Image Source="/assets/siren.jpg" Width="60" />
        <TextBlock Margin="15 0 0 0">Сирень</TextBlock>
    </StackPanel>
    <StackPanel Orientation="Horizontal">
        <Image Source="/assets/kamni.jpg" Width="60" />
        <TextBlock Margin="15 0 0 0">Камни</TextBlock>
    </StackPanel>
</ListBox>
ListBox в UWP

В данном случае предполагается, что в папке Assets у нас находятся три файла изображений. Мы можем использовать элементы как внутри ListBoxItem, так и непосредственно вставлять их в список.

В в реальности, конечно, редко придется прибегать к подобному определению элементов списка. Как правило, весь список задается через привязку через свойство ItemsSource, как было расмотрено в прошлой теме. А для отображения сложных данных обычно применяются шаблоны DataTemplate, которые будут рассмотрены в следующей теме.

Выделение элементов

ListBox поддерживает множественный выбор. Для этого нужно установить свойство SelectionMode="Multiple" или SelectionMode="Extended". В последнем случае, чтобы выделить несколько элементов, необходимо держать нажатой клавишу Ctrl или Shift. По умолчанию SelectionMode="Single", то есть допускается только единственное выделение.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850