Skip to content

Обзор контрола ListView

ListViewControl - это расширенный контрол для отображения списка элементов в одном или нескольких столбцах. Контрол поддерживает различные макеты расположения элементов, сортировку, группировку, фильтрацию и выбор элементов. Вы можете использовать ListView для эмуляции пользовательского интерфейса правой панели проводника Microsoft Windows.

ListView поддерживает шаблон проектирования MVVM для отображения элементов. Контрол извлекает элементы из связанного источника объекта и отображает их с использованием указанного шаблона элемента. Вам нужно определить шаблон, чтобы рисовать элементы так, как вы хотите. Например, шаблон может указывать ListView рисовать элементы в виде значков, значков с текстом или просто текста.

ListView-svgbrowser

Начало работы

Предоставляйте элементы в ListView

Используйте свойство ListViewControl.ItemsSource, чтобы привязать контрол к коллекции объектов, которые будут отображаться как элементы ListView.

Шаблон элемента

Чтобы отобразить элементы определенным образом, укажите шаблон элемента со свойством ListViewControl.ItemTemplate. ListView не отображает свои элементы без этого шаблона.

ItemTemplate's DataContext: Объект элемента из коллекции ListViewControl.ItemsSource.

Пример

В следующем примере ListView заполняется элементами из коллекции SvgIconsBrowserViewModel.Categories и определяется шаблон для отображения элементов. Смотрите полный код этого примера в модуле SVG Icons Browser.

ListView-svgbrowser-categories-example

Класс SvgIconCategoryViewModel в приведенном ниже коде инкапсулирует элементы в коллекции связанных элементов. Шаблон элемента ListView состоит из флажка, за которым следует текстовое поле. Флажок и текстовые поля привязаны к свойствам SvgIconCategoryViewModel.IsChecked и SvgIconCategoryViewModel.DisplayName соответственно.

<mxlv:ListViewControl ItemLayoutMode="Stack" ItemHeight="28" ItemsSource="{Binding Categories}" >
    <mxlv:ListViewControl.ItemTemplate>
        <DataTemplate DataType="vm:SvgIconCategoryViewModel">
            <Grid ColumnDefinitions="Auto, *">
                <CheckBox IsChecked="{Binding IsChecked}" Margin="0,0,4,0" VerticalAlignment="Center"/>
                <TextBlock Grid.Column="1" Text="{Binding DisplayName}" VerticalAlignment="Center"/>
            </Grid>
        </DataTemplate>
    </mxlv:ListViewControl.ItemTemplate>
</mxlv:ListViewControl>
public partial class SvgIconsBrowserViewModel : PageViewModelBase
{
    [ObservableProperty] private List<SvgIconCategoryViewModel> categories;
    //...
}

public partial class SvgIconCategoryViewModel : ObservableObject, IComparable<SvgIconCategoryViewModel>, IComparable
{
    [ObservableProperty] private bool isChecked;
    [ObservableProperty] private string name;
    [ObservableProperty] private string displayName;
    [ObservableProperty] private bool isExpanded;
    //...
}

Расположение элементов

Контрол ListView поддерживает два режима расположения элементов: Wrap (по умолчанию) и Stack. Используйте свойство ListViewControl.ItemLayoutMode, чтобы выбрать требуемый макет.

Wrap Размещение

Установите для свойства ListViewControl.ItemLayoutMode значение ListViewItemLayoutMode.Wrap, чтобы разместить элементы поперек, а затем вниз. Элементы автоматически переносятся по правому краю контрола, создавая несколько линий.

listviewcontrol-itemlayoutmode-wrap

Все элементы имеют один размер. Размер элемента по умолчанию вычисляется на основе данных первого элемента в соответствии с указанным шаблоном (ListViewControl.ItemTemplate). Вы можете использовать свойства ListViewControl.ItemWidth и ListViewControl.ItemHeight, чтобы указать пользовательский размер элемента для ListView.

Stack Размещение

Установите для свойства ListViewControl.ItemLayoutMode значение ListViewItemLayoutMode.Stack, чтобы разместить элементы в вертикальном списке. Элементы растягиваются, подгоняя их по ширине к LayoutView.

listviewcontrol-itemlayoutmode-stack

В режиме размещения Stack вы можете использовать свойство ListViewControl.ItemHeight для указания пользовательской высоты элемента.

Сортировка элементов

Вы можете отсортировать элементы ListView по одному или нескольким свойствам элемента в порядке возрастания или убывания. Чтобы отсортировать элементы, добавьте объект(ы) ListViewSortInfo в коллекцию ListViewControl.SortInfo. Эта коллекция также используется для определения "группировки" элемента .

Объект ListViewSortInfo содержит следующие свойства для настройки свойств сортировки:

  • ListViewSortInfo.FieldName — Указывает свойство элемента, по которому сортируются элементы ListView.
  • ListViewSortInfo.SortDirection — Указывает порядок, в котором сортируются элементы ListView. Порядок сортировки по умолчанию - по возрастанию.

Пример - Сортировка элементов

В следующем примере элементы сортируются по их свойствам ShipCountry и Date. Контрол сначала сортирует элементы по свойству ShipCountry в порядке возрастания, объединяя их в подмножества с одной и той же страной доставки. Затем контрол сортирует элементы в пределах каждого подмножества элементов по свойству Date в порядке убывания.

listivew-sort-by-two-fields-example

<mxlv:ListViewControl Name="listViewControl1" ItemsSource="{Binding Items}" >
    <mxlv:ListViewControl.SortInfo>
        <mxlv:ListViewSortInfo FieldName="ShipCountry" SortDirection="Ascending" />
        <mxlv:ListViewSortInfo FieldName="Date" SortDirection="Descending"/>
    </mxlv:ListViewControl.SortInfo>
</mxlv:ListViewControl>
public partial class MainWindowViewModel : ViewModelBase
{
    [ObservableProperty] 
    private List<ItemViewModel> items;
    //...
}

public partial class ItemViewModel : ObservableObject
{
    [ObservableProperty] private int invoiceId;
    [ObservableProperty] private string shipCountry;
    [ObservableProperty] private DateTime date;
    //...
}

Групповые элементы

Группировка позволяет объединять элементы с одинаковыми значениями в одни и те же распахиваемые группы.

Например, если объект элемента содержит свойство ShipCountry, вы можете сгруппировать его по этому свойству, чтобы получить следующий результат:

listview-grouping-by-shipcountry

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

Обратите внимание, что при группировании по свойству группирующей строки автоматически сортируются по свойству group. В коде вы можете выбирать между порядком возрастания и убывания строк группы при применении группировки.

Чтобы сгруппировать по свойству элемента или свойствам, выполните следующие действия:

  • Добавьте объект(ы) ListViewSortInfo в начало коллекции ListViewControl.SortInfo. Установите ListViewSortInfo.FieldName в свойство элемента, по которому следует группировать элементы. При необходимости используйте ListViewSortInfo.SortDirection, чтобы выбрать между порядком сортировки по возрастанию и убыванию, в котором будут размещены группирующие строки.

  • Установите для свойства ListViewControl.GroupCount значение количества уровней группы (group properties). ListViewControl.GroupCount указывает, сколько объектов ListViewSortInfo, начиная с начала коллекции ListViewControl.SortInfo, используется для группировки данных. Если вы группируете по одному свойству элемента, установите для ListViewControl.GroupCount значение 1. Чтобы сгруппировать по двум свойствам, установите для ListViewControl.GroupCount значение 2 и так далее.

Коллекция ListViewControl.SortInfo может содержать больше элементов, чем ListViewControl.GroupCount. Первые элементы, номер которых указан GroupCount, используются для группировки элементов ListView. Остальные элементы используются для сортировки элементов ListView.

Пример - Группировка элементов

Предположим, что объект элемента содержит свойство ShipCountry. Чтобы сгруппировать по этому свойству, объект ListViewSortInfo, который ссылается на свойство ShipCountry, необходимо поместить в начало коллекции ListViewControl.SortInfo. Свойству ListViewControl.GroupCount должно быть присвоено значение 1.

listview-group-items-example

<mxlv:ListViewControl Name="lv" ItemsSource="{Binding Items}" ItemHeight="40" ItemWidth="40" 
                      ItemLayoutMode="Wrap"                        
                      GroupCount="1">
    <mxlv:ListViewControl.SortInfo>
        <mxlv:ListViewSortInfo FieldName="ShipCountry" SortDirection="Ascending" />
    </mxlv:ListViewControl.SortInfo>
</mxlv:ListViewControl>
public partial class MainWindowViewModel : ViewModelBase
{
    [ObservableProperty] 
    private List<ItemViewModel> items;
}

public partial class ItemViewModel : ObservableObject
{
    [ObservableProperty] private int invoiceId;
    [ObservableProperty] private string shipCountry;
    [ObservableProperty] private DateTime date;
    [ObservableProperty] private IImage flag;
    //...
}

Пользовательский шаблон группирующей строки

Если шаблон групповой строки по умолчанию не соответствует вашим потребностям, вы можете использовать свойство ListViewControl.GroupTemplate, чтобы указать пользовательский шаблон данных для отрисовки групповых строк.

GroupTemplate's DataContext: Объект Eremex.AvaloniaUI.Controls.ListView.Data.ListViewGroupData

Объект ListViewGroupData, хранящийся в DataContext шаблона, предоставляет следующие свойства, которые помогут вам получить информацию о строках группы и настроить шаблон группирующей строки:

  • ListViewGroupData.FieldName — имя свойства группы.
  • ListViewGroupData.GroupValue — Значение свойства group.
  • ListViewGroupData.GroupValueDisplayText — Текстовое представление значения свойства group. Вы можете предоставить пользовательский текст для отображения значения группы, обработав событие ListViewControl.CustomGroupValueDisplayText.
  • ListViewGroupData.IsExpanded — Указывает, будет ли группа развернута или свернута.
  • ListViewGroupData.Level — Групповой уровень группы. Для строк группы на корневом уровне свойство ListViewGroupData.Level возвращает значение 0. Для групповых строк на втором уровне свойство ListViewGroupData.Level возвращает значение 1 и так далее.

Для пользовательского шаблона может потребоваться другая высота группирующей строки. Вы можете задать высоту строки пользовательской группы с помощью свойства ListViewControl.GroupHeight.

Пример - Пользовательский шаблон группирующей строки

В следующем примере определяется пользовательский шаблон для группирующих строк с использованием свойства ListViewControl.GroupTemplate. Шаблон состоит из текстового блока, который отображает значение группы, и контрола с картинкой, который отображает картинку SVG, связанную со строкой группы.

listview-custom-group-row-template-example

В примере предполагается, что проект содержит картинки brazil-flag.svg и china-flag.svg в папке Assets. Все картинки должны иметь свойство Build Action, установленное в значение AvaloniaResource. Для чтения картинок из файлов в приведенном ниже коде используется вспомогательный класс Eremex.AvaloniaUI.Controls.Utils.ImageLoader.

xmlns:mxlv="https://schemas.eremexcontrols.net/avalonia/listview"
xmlns:mxlvd="using:Eremex.AvaloniaUI.Controls.ListView.Data"
xmlns:vm="using:ListView_example.ViewModels"

<mxlv:ListViewControl Name="listViewControl1" ItemsSource="{Binding Items}" 
                      ItemHeight="70" ItemWidth="100"
                      GroupCount="1"
                      GroupHeight="40">
    <mxlv:ListViewControl.SortInfo>
        <mxlv:ListViewSortInfo FieldName="ShipCountry" SortDirection="Ascending" />
    </mxlv:ListViewControl.SortInfo>
    <mxlv:ListViewControl.GroupTemplate>
        <DataTemplate DataType="mxlvd:ListViewGroupData">
            <StackPanel Orientation="Horizontal" >
                <Image Height="20" 
                  Source="{Binding GroupValue, Converter={vm:CountryNameToFlagConverter}}}" 
                  Margin="0,0,5,0" VerticalAlignment="Center"/>
                <TextBlock Text="{Binding GroupValueDisplayText}" VerticalAlignment="Center"/>
            </StackPanel>
        </DataTemplate>
    </mxlv:ListViewControl.GroupTemplate>
using Eremex.AvaloniaUI.Controls.Utils;

namespace ListView_example.ViewModels;

public class CountryNameToFlagConverter : MarkupExtension, IValueConverter
{
    public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
    {
        if (value == null)
            return null;
        string countryName = ((string)value).ToLower();
        return ImageLoader.LoadSvgImage(Assembly.GetExecutingAssembly(), $"Assets/{countryName}-flag.svg");
    }

    public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }

    public override object ProvideValue(IServiceProvider serviceProvider)
    {
        return this;
    }
}

Текст пользовательского группового значения

Строки группы отображают текстовое представление значений группы по умолчанию. Вы можете обработать событие ListViewControl.CustomGroupValueDisplayText, чтобы переопределить текст отображения значений группы. Это событие срабатывает повторно для каждой группирующей строки.

Определение строк группы

Элементы ListView и строки групп могут быть идентифицированы с помощью indexes. Строкам группы присваиваются отрицательные индексы, в то время как элементы имеют неотрицательные индексы. Помимо индексов, вы можете идентифицировать групповые строки по групповым значениям.

listview-grouprows-indexes

Смотрите следующий раздел для получения более подробной информации: Идентификация и получение элементов и группировка строк .

API, связанный с группировкой

  • ListViewControl.GroupHeight — определяет высоту группирующей строки.
  • ListViewControl.GroupLevelIndent — Указывает отступ перед строками вложенной группы (на втором и более низких уровнях).
  • ListViewControl.AutoExpandAllGroups — Позволяет отключить автоматическое распахивание строк группы при загрузке контрола.
  • ListViewControl.CollapseAllGroups — Сворачивает все группирующие строки.
  • ListViewControl.CollapseGroup — Сворачивает определенную строку группы.
  • ListViewControl.ExpandAllGroups — Расширяет все группирующие строки.
  • ListViewControl.ExpandGroup — Расширяет строку определенной группы.
  • ListViewControl.IsGroupExpanded — Возвращает, распахнута ли определенная группа.

Смотрите также: Методы для перехода по строкам группы и их дочерним элементам .

Фильтровать элементы

Обработайте событие ListViewControl.FilterItem, чтобы динамически настроить видимость определенных элементов ListView. Это событие срабатывает повторно для каждого элемента в коллекции ListViewControl.ItemsSource. Чтобы скрыть определенный элемент, установите для параметра события e.Visible значение false.

Если правила фильтрации элементов динамически изменяются в вашем приложении, вам может потребоваться принудительно повторно активировать механизм фильтрации элементов и, следовательно, событие ListViewControl.FilterItem. Чтобы сделать это, вызовите метод ListViewControl.RefreshData.

Пример

Следующий пример из модуля SVG Icons Browser скрывает элементы в соответствии с определенным условием.

<mxlv:ListViewControl x:Name="IconsListControl" 
    FilterItem="ListViewControl_OnFilterItem">
private void ListViewControl_OnFilterItem(object sender, ListViewFilterEventArgs e)
{
    ((SvgIconsBrowserViewModel)DataContext)?.OnCustomFilter(e);
}

public partial class SvgIconsBrowserViewModel : PageViewModelBase
{
    public void OnCustomFilter(ListViewFilterEventArgs e)
    {
        SvgIconViewModel vm = (SvgIconViewModel)e.Item;
        e.Visible = vm.Category.IsChecked && (string.IsNullOrEmpty(SearchText) || vm.Name.Contains(SearchText, StringComparison.OrdinalIgnoreCase));
    }
}

Идентифицируйте и получайте элементы и группируйте строки

ListView присваивает indexes элементам ListView и строкам групп, чтобы разрешить их идентификацию.

  • Индексы отражают порядок расположения элементов и группируют строки.
  • Элементы нумеруются с использованием неотрицательных индексов, начинающихся с нуля. Самый верхний элемент имеет индекс 0, второй элемент имеет индекс 1 и так далее.
  • Строки групп нумеруются с использованием отрицательных индексов. Верхняя группирующая строка имеет индекс -1, вторая группирующая строка имеет индекс -2 и так далее.
  • Индексы используются для идентификации как видимых, так и скрытых (внутри свернутых групп) элементов.
  • Когда порядок расположения элементов изменяется (например, при сортировке или группировке данных), элементам присваиваются новые индексы в соответствии с их новыми позициями.
  • Индексы не присваиваются элементам, которые скрыты из-за фильтрации данных.

Когда элементы не сгруппированы, индексы соответствуют видимым индексам:

listview-indexes

Когда элементы сгруппированы, индексы и видимые индексы не совпадают:

listview-indexes-when-grouped

Специальные указатели

ListView резервирует следующий предопределенный индекс для идентификации недопустимых элементов:

  • Константа ListViewControl.InvalidItemIndex — идентифицирует элемент, который не существует в контроле ListView. Это значение может быть возвращено методами ListView, используемыми для получения индексов элементов.

Например, элементы на корневом уровне не имеют родителей. Если вы попытаетесь получить родительский элемент корневого элемента с помощью метода ListViewControl.GetParentItemIndex, этот метод вернет константу ListViewControl.InvalidItemIndex.

Исходные элементы и индексы исходных элементов

Каждый элемент ListView соответствует определенному бизнес-объекту в привязанном источнике объекта (ListViewControl.ItemsSource). Позиция элемента в источнике объекта называется source item index.

Вы можете использовать следующие методы для получения нижележащего исходного элемента и индекса исходного элемента.

  • ListViewControl.GetSourceItemIndexByItemIndex
  • ListViewControl.GetSourceItemIndexByVisibleItemIndex

Чтобы выполнить обратное преобразование индексов, ознакомьтесь со следующими методами:

  • ListViewControl.GetItemIndexBySourceItemIndex
  • ListViewControl.GetVisibleItemIndexBySourceItemIndex

Индексы исходных элементов начинаются с нуля. Когда вы сортируете, группируете или фильтруете элементы, индексы их исходных элементов не изменяются.

Строки группы не имеют соответствующих элементов в источнике объекта, поэтому к ним нельзя обратиться с помощью исходных элементов и индексов исходных элементов.

Связанный API

ListView предоставляет элементы API для извлечения элементов по индексам и преобразования между индексами элементов, индексами видимых элементов и индексами исходных элементов. В следующем списке обобщена эта информация:

  • ListViewControl.FocusedItemIndex — Указывает индекс сфокусированной строки элемента/группы. Это свойство позволяет вам сфокусировать определенный элемент или строку группы.
  • ListViewControl.GetItemIndexBySourceItemIndex — Возвращает индекс элемента по индексу исходного элемента.
  • ListViewControl.GetItemIndexByVisibleItemIndex — Возвращает индекс элемента по видимому индексу элемента.
  • ListViewControl.GetSourceItemIndexByItemIndex — Возвращает индекс исходного элемента для элемента с указанным индексом.
  • ListViewControl.GetSourceItemIndexByVisibleItemIndex — Возвращает индекс исходного элемента для элемента с указанным видимым индексом.
  • ListViewControl.GetVisibleItemIndexByItemIndex — Возвращает видимый индекс элемента по индексу элемента.
  • ListViewControl.GetVisibleItemIndexBySourceItemIndex — Возвращает видимый индекс элемента по индексу исходного элемента.

Методы прохождения по строкам групп и их дочерним элементам

  • ListViewControl.GetGroupChildItemIndex(int childIndex) — Возвращает индекс определенной строки корневой группы. Параметр childIndex определяет порядок строк целевой корневой группы, начинающийся с нуля, среди ее одноуровневых элементов. Этот параметр принимает значения от 0 до GetGroupChildrenCount() - 1.
  • ListViewControl.GetGroupChildItemIndex(int itemIndex, int childIndex) — Возвращает индекс дочернего элемента или строки вложенной группы. Параметр itemIndex определяет индекс строки родительской группы. Параметр childIndex определяет порядок, начинающийся с нуля, для целевого дочернего элемента или группирующей строки среди его одноуровневых элементов. Этот параметр принимает значения от 0 до GetGroupChildrenCount(itemIndex) - 1.
  • ListViewControl.GetGroupChildrenCount() — Эта перегрузка без параметров возвращает количество строк группы на корневом уровне.
  • ListViewControl.GetGroupChildrenCount(int itemIndex) — Возвращает количество непосредственных дочерних элементов в строке определенной группы. Строка родительской группы определяется по ее индексу.

  • ListViewControl.GetGroupIndex — Возвращает индекс группирующей строки по имени поля строки и значению группы.

  • ListViewControl.GetGroupValue — Возвращает значение группирующей строки по индексу строки.
  • ListViewControl.GetParentItemIndex — Возвращает индекс строки родительской группы для вложенного элемента или группирующей строки.

Обратите

The methods above are not in effect if items are not grouped.

Фокус на элементе

Когда пользователь переходит к определенному элементу или строке группы с помощью клавиатуры или щелчка мыши, ListView перемещает фокус на этот элемент/строку группы.

listview-singleselection-focuseditem

Вы можете использовать следующие свойства, чтобы получить/установить сфокусированную строку элемента/группы в коде:

  • ListViewControl.FocusedItem — Получает или устанавливает бизнес-объект из коллекции ListViewControl.ItemsSource, который соответствует сфокусированному элементу ListView. Чтобы переместить фокус на определенный элемент, вы можете присвоить объекту из коллекции ItemsSource свойство FocusedItem.

    Записка

    The FocusedItem property returns null if a group row is focused. You cannot use this property to focus a group row.

  • ListViewControl.FocusedItemIndex — Получает или устанавливает индекс строки сфокусированного элемента/группы. Вы можете использовать свойство FocusedItemIndex, чтобы переместить фокус на элемент или строку группы.

Следующий код фокусируется на строке группы, в поле ShipCountry которой задано значение "Индия".

int groupRowindex = listViewControl1.GetGroupIndex("ShipCountry", "India");
if(groupRowindex != ListViewControl.InvalidItemIndex)
    listViewControl1.FocusedItemIndex = groupRowindex;

Пример - Реакция на фокусировку элемента

Следующий пример связывает свойство ListViewControl.FocusedItem со свойством MainWindowViewModel.FocusedItem. Вы можете реагировать на изменения в сфокусированном элементе в настройщике свойств MainWindowViewModel.FocusedItem.

xmlns:mxlv="https://schemas.eremexcontrols.net/avalonia/listview"

<mxlv:ListViewControl Name="listViewControl1" ItemsSource="{Binding Items}" 
    FocusedItem="{Binding FocusedItem, Mode=TwoWay}">
</mxlv:ListViewControl>
public partial class MainWindowViewModel : ViewModelBase
{
    ItemViewModel focusedItem;
    ItemViewModel FocusedItem {
        get {
            return focusedItem;
        }
        set
        {
            if (value != focusedItem)
            {
                focusedItem = value;
                // Perform actions when the focused item changes.
            }
        }
    }
}

public partial class ItemViewModel : ObservableObject
{
    //...
}

Выбор нескольких элементов

ListView позволяет выбирать несколько элементов и группировать строки. Чтобы включить этот режим выбора, установите для свойства ListViewControl.SelectionMode значение Multiple. Выбранные элементы и строки групп имеют выделенный фон.

listview-multiple-selection

  • Щелчок по элементу позволяет выбрать этот элемент и отменить выбор ранее выбранных элементов.
  • Щелчок мышью с Ctrl по элементу переключает выбранное состояние элемента.
  • Щелчок правой кнопкой мыши по элементу выбирает диапазон элементов (между ранее сфокусированным элементом и щелкнутым элементом).

Когда пользователь выбирает элемент, этот элемент также фокусируется (свойства ListViewControl.FocusedItem и ListViewControl.FocusedItemIndex обновляются). Последующий щелчок CTRL по этому элементу отменяет его выделение, но сохраняет фокус.

Используйте следующие элементы API для получения выбранных элементов и группирования строк:

  • ListViewControl.SelectedItems — Коллекция бизнес-объектов из источника ListViewControl.ItemsSource, которые соответствуют выбранным элементам ListView. Коллекция SelectedItems не содержит выбранных строк группы, поскольку группирующие строки не соответствуют ни одному бизнес-объекту в источнике ListViewControl.ItemsSource.

  • ListViewControl.GetSelectedIndices — Этот метод возвращает массив индексов выбранных в данный момент элементов и групповых строк. Индексы элементов неотрицательны, в то время как индексы строк группы отрицательны. Смотрите следующий раздел для получения более подробной информации: Идентификация и получение элементов и группировка строк .

Следующие свойства и методы позволяют вам выбирать элементы и группировать строки в коде:

  • ListViewControl.SelectedItems — Вы можете назначить свою коллекцию бизнес-объектов из источника ListViewControl.ItemsSource свойству SelectedItems, чтобы выбрать соответствующие элементы ListView.
  • ListViewControl.SelectAll — Выбирает все элементы и группирующие строки, если таковые имеются.
  • ListViewControl.SetSelected — Выбирает или отменяет выбор определенного элемента или группирующей строки.
  • ListViewControl.ToggleSelected — Переключает выбранное состояние для элемента или группирующей строки.

Чтобы отреагировать на изменения в выделении, вы можете обработать событие ListViewControl.SelectionChanged.

Связанный API

  • ListViewControl.ClearSelection — Очищает выделение.
  • ListViewControl.GetIsSelected — Возвращает, выбран ли элемент.



* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.