Инструменты разработки мобильных приложений. ListView и работа с данными

Содержание

Слайд 2

элемент управления Xamarin Forms, который позволяет отображать список объектов и при

элемент управления Xamarin Forms, который позволяет отображать список объектов и при

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

ListView 

Слайд 3

Задание1. Вывести в ListView список из массива строк Задать массив строк

Задание1. Вывести в ListView список из массива строк
Задать массив строк
Создать объект

ListView
Определить источник данных для ListView
Загрузить данные (контент)

Создание ListView в коде C#

Слайд 4

public MainPage() { Label header = new Label { Text =

public MainPage()
{
Label header = new Label
{
Text

= "Список моделей",
FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label)),
HorizontalOptions = LayoutOptions.Center
};
string[] phones = new string[] { "iPhone 7", "Samsung Galaxy S8", "Huawei P10", "LG G6" };
ListView listView = new ListView();
listView.ItemsSource = phones;
this.Content = new StackLayout { Children = { header, listView } };
}

Создание ListView в коде C#

При выводе каждого объекта ListView по умолчанию
вызывает для него метод ToString(),
поэтому мы увидим строковое отображение объекта.

Слайд 5

Результат задания 1

Результат задания 1

Слайд 6

xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="HelloApp.MainPage"> iPhone 7 Google Pixel 5 Huawei P10 Xiaomi Mi6 Создание ListView в XAML


             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="HelloApp.MainPage">
    
        
            
                iPhone 7
                Google Pixel 5
                Huawei

P10
                Xiaomi Mi6
            
        
    
    
        


Создание ListView в XAML

Слайд 7

Результат ListView в XAML

Результат ListView в XAML

Слайд 8

источник данных для ListView определяется в коде C# использовать привязку к

источник данных для ListView определяется в коде C#
использовать привязку к источнику

данных в XAML

Сочетание XAML и C# (рекомендуется)

Слайд 9

using Xamarin.Forms; namespace HelloApp { public partial class MainPage : ContentPage

using Xamarin.Forms;
namespace HelloApp
{
    public partial class MainPage : ContentPage
    {
        public string[] Phones {

get; set; }
public MainPage()
        {
            InitializeComponent();
            Phones = new string[] { "iPhone 8", "Samsung Galaxy S9", "Huawei P10", "LG G6" };
            this.BindingContext = this;
        }
    }
}

Пример сочетания XAML и C#

Слайд 10

xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="HelloApp.MainPage"> Пример сочетания XAML и C#


             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="HelloApp.MainPage">
    
        

ItemsSource="{Binding Phones}" />
    

Пример сочетания XAML и C#

Слайд 11

источник данных определен как публичное свойство Phones. установка контекста привязки страницы:

источник данных определен как публичное свойство Phones.
установка контекста привязки страницы: this.BindingContext

= this
Таким образом, в XAML мы можем обратиться ко всем публичным свойствам страницы.

Важные моменты

Слайд 12

Можно обойтись без обработки события и просто установить привязку элемента Label

Можно обойтись без обработки события и просто установить привязку элемента Label

к выбранному объекту списка

             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="HelloApp.MainPage">
    
        
            
                iPhone 7
                Google Pixel 5
                Huawei P10
                Xiaomi Mi6
            

        

    

    
        


Привязка к выбранному элементу

Слайд 13

Когда пользователь нажимает на элемент списка, он выделяется, а у ListView

Когда пользователь нажимает на элемент списка, он выделяется, а у ListView

срабатывают два события:
ItemTapped и ItemSelected.

Как отследить выбор элемента в ListView?

Слайд 14

повторное нажатие на один и тот же элемент не вызовет повторного

повторное нажатие на один и тот же элемент не вызовет повторного

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

Как отследить выбор элемента в ListView?

Слайд 15

Добавьте в приложения два обработчика события и определите 1. сколько раз

Добавьте в приложения два обработчика события и определите
1. сколько раз

пользователь выбрал (выделил) элемент списка
2. сколько раз пользователь кликнул (нажал) по элементу списка
Подсказка: использовать обработчики событий  ItemSelected и ItemTapped
Информацию вывести в заголовок списка (смотрите следующий слайд)

Задание 2

Слайд 16

Задание 2. Пример вывода информации

Задание 2. Пример вывода информации

Слайд 17

Модифицируйте предыдущее приложение. В заголовок списка выводите выбранный элемент(название модели телефона)

Модифицируйте предыдущее приложение.
В заголовок списка выводите выбранный элемент(название модели телефона)
Информацию

«Выделено» и «Нажато» вывести внизу экрана (смотрите следующий слайд)

Задание 3

Слайд 18

Задание 3. Пример вывода информации

Задание 3. Пример вывода информации