Код:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace RedBook
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class ListViewPage5 : ContentPage
{
public ObservableCollection<string> Items { get; set; }
public List<Flover> Flovers { get; }
public ListViewPage5()
{
InitializeComponent();
Flovers = new List<Flover>
{
new Flover {Title="Астрагал яичкоплодный", Class="Покрытосеменные двудольные",Sem="Бобовые", ImagePath="dhsf.png" },
new Flover {Title="Копеечник альпийский", Class="Покрытосеменные двудольные",Sem=" Бобовые", ImagePath="fdh.png" },
new Flover {Title="Остролодочник волосистый", Class="Покрытосеменные двудольные",Sem="Бобовые", ImagePath="rue.png" },
new Flover {Title="Бруннера сибирская", Class="Покрытосеменные двудольные",Sem="Бурачниковые", ImagePath="dbad.png" },
new Flover {Title="Нимфоцветник щитолистный", Class="Покрытосеменные двудольные",Sem="Вахтовые", ImagePath="dhs.png" },
new Flover {Title="Минуарция прямая", Class="Покрытосеменные двудольные",Sem="Гвоздичные", ImagePath="rsr.png" },
new Flover {Title="Скрытолепестник липкий", Class="Покрытосеменные двудольные",Sem="Гвоздичные", ImagePath="fdjsd.png" },
new Flover {Title="Ясколка крупная", Class="Покрытосеменные двудольные",Sem="Гвоздичные", ImagePath="dgjd.png" },
new Flover {Title="Сокольница семираздельная",Class="Покрытосеменные двудольные", Sem="Горечавковые", ImagePath="ndfj.png" },
new Flover {Title="Змеевик, или Горец,живородящий", Class="Покрытосеменные двудольные",Sem="Гречишные", ImagePath="fhd.png" },
new Flover {Title="Тимьян енисейский", Class="Покрытосеменные двудольные",Sem="Губоцветные", ImagePath="hsrf.png" },
new Flover {Title="Тимьян Маршалла", Class="Покрытосеменные двудольные",Sem="Губоцветные ", ImagePath="dfhds.png" },
new Flover {Title="Жимолость татарская", Class="Покрытосеменные двудольные",Sem="Жимолостные", ImagePath="dhjd.png" },
new Flover {Title="Зверобой большой", Class="Покрытосеменные двудольные",Sem="Зверобойные ", ImagePath="dshdsh.png" },
new Flover {Title="Володушка многожильчатая", Class="Покрытосеменные двудольные",Sem="Зонтичные", ImagePath="fhgkf.png" },
new Flover {Title="Китагавия байкальская", Class="Покрытосеменные двудольные",Sem="Зонтичные", ImagePath="fgk.png" },
new Flover {Title="Истод сибирский", Class="Покрытосеменные двудольные",Sem="Истодовые", ImagePath="hkg.png" },
new Flover {Title="Камнеломка болотная", Class="Покрытосеменные двудольные",Sem="Камнеломковые", ImagePath="gjd.png" },
new Flover {Title="Селезеночник сибирский",Class="Покрытосеменные двудольные", Sem="Камнеломковые", ImagePath="sdhs.png" },
new Flover {Title="Гониолимон красивый", Class="Покрытосеменные двудольные",Sem="Кермековые ", ImagePath="gfjf.png" },
new Flover {Title="Сердечник трехраздельный", Class="Покрытосеменные двудольные",Sem="Крестоцветные", ImagePath="tizrt.png" },
new Flover {Title="Полынь пижмолистная", Class="",Sem="Сложноцветные", ImagePath="ycu.png" },
new Flover {Title="Полынь рассеченнолистная",Class="Покрытосеменные двудольные", Sem="Сложноцветные", ImagePath="uo.png" },
new Flover {Title="Полынь шелковистая", Class="Покрытосеменные двудольные",Sem="Сложноцветные", ImagePath="ti.png" },
new Flover {Title="Полынь широколистная",Class="Покрытосеменные двудольные", Sem="Сложноцветные", ImagePath="help.png" },
new Flover {Title="Солонечник узколистный", Class="Покрытосеменные двудольные",Sem="Сложноцветные", ImagePath="dsg.png" },
new Flover {Title="Горноколосник колючий",Class="Покрытосеменные двудольные", Sem="Толстянковые ", ImagePath="ffh.png" },
new Flover {Title="Очиток желтый", Class="Покрытосеменные двудольные",Sem="Толстянковые ", ImagePath="fhsf.png" },
new Flover {Title="Фиалка рассеченная", Class="Покрытосеменные двудольные",Sem="Фиалковые", ImagePath="fhsf.png" }
};
Label header = new Label
{
Text = "Список растений",
FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label))
};
ListView listView = new ListView
{
HasUnevenRows = true,
ItemsSource = Flovers,
// Определяем формат отображения данных
ItemTemplate = new DataTemplate(() =>
{
ImageCell imageCell = new ImageCell { TextColor = Color.Red, DetailColor = Color.Green };
imageCell.SetBinding(ImageCell.TextProperty, "Title");
Binding classBinding = new Binding { Path = "Class", StringFormat = "Класс {0}" };
imageCell.SetBinding(ImageCell.DetailProperty, classBinding);
imageCell.SetBinding(ImageCell.ImageSourceProperty, "ImagePath");
return imageCell;
})
};
floverList.ItemTapped += Handle_ItemTapped;
Content = new StackLayout { Children = { header, floverList } };
floverList.ItemsSource = Items;
}
private async void Handle_ItemTapped(object sender, ItemTappedEventArgs e)
{
Flover selectedFlover = e.Item as Flover;
if (selectedFlover == null)
return;
await DisplayAlert("Информация", $"{selectedFlover.Sem} - {selectedFlover.Title} - {selectedFlover.Class}", "OK");
}
public partial class Flover
{
public string ImagePath { get; set; }
public string Title { get; set; }
public string Class { get; set; }
public string Sem { get; set; }
}
}
}