Я пытаюсь создать простую страницу с ListView
и Button
«Добавить», которая просто добавляет еще один элемент в список со счетом и меткой времени.Xamarin.Forms заполнить список
App.cs
namespace App1
{
public class App : Application
{
public App()
{
// The root page of your application
MainPage = new NavigationPage(new Page1());
}
}
}
Как вы можете видеть, я создал Page.xaml
и Page.xaml.cs
.
Page.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="App1.Page1">
<StackLayout Orientation="Vertical" VerticalOptions="FillAndExpand">
<Label Text="Inizio" VerticalOptions="Start"/>
<ListView VerticalOptions="FillAndExpand" x:Name ="list">
</ListView>
<Label Text="Fine" VerticalOptions="End"/>
</StackLayout>
<ContentPage.ToolbarItems>
<ToolbarItem x:Name="add">
<ToolbarItem.Icon>
<OnPlatform
x:TypeArguments="FileImageSource"
iOS="appbar.add.png"
Android="appbar.add.png"
WinPhone="appbar.add.png"
/>
</ToolbarItem.Icon>
</ToolbarItem>
</ContentPage.ToolbarItems>
</ContentPage>
Page.xaml.cs
namespace App1
{
public partial class Page1 : ContentPage
{
int count = 0;
ObservableCollection<TextCell> cells = new ObservableCollection<TextCell>();
public Page1()
{
InitializeComponent();
//this.ToolbarItems.Add(new ToolbarItem { Text = "Add" });
add.Clicked += Add_Clicked;
}
private void Add_Clicked(object sender, EventArgs e)
{
cells.Add(new TextCell { Text = count.ToString(), Detail = DateTime.Now.ToString("dd/MM/yyyy --> hh:mm:ss") });
list.ItemsSource = cells;
count++;
}
}
}
Теперь все работает, но проблема заключается в List
. У меня есть List
, заполненный TextCells
, и каждый из них имеет свойство, которое я установил. Однако, List
заполняется элементами только текстом «Xamarin.Forms.TextCell».
Это моя первая попытка с Xamarin, что я делаю неправильно?
я собираюсь отметить это как правильные, так как он работает, и это очень хорошо объяснен. Только один вопрос: почему пользовательский List, а не просто List ? только для того, чтобы быть готовым к будущим реализациям? –
Ah отлично, что будет делать, на самом деле у меня был этот шаблон из моего решения, где я добавляю некоторые элементы в класс menuData, поэтому не удосужился его удалить. –