Так что в коде я извлекаю базу данных sqlite и создаю список людей с различными свойствами. Я хочу прикрепить свойство Name к тексту кнопки. Вот объект в коде (у меня он есть в методе OnAppearing):
List<Person> People = await App.PersonRep.GetAllPeople();
Я пытаюсь привязать определенный индекс из этого списка к кнопке в XAML, но изо всех сил пытаюсь найти решение, которое работает. Помещает ли кнопка в просмотр списка единственный путь? Я надеялся сделать что-то, что может выглядеть чище или быть проще
РЕДАКТИРОВАТЬ больше код:
<ContentPage.Content>
<ListView x:Name="peopleList">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell Height="30">
<StackLayout Padding="5">
<Button Text="{Binding People[0].PersonName}" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage.Content>
А затем это в коде позади:
public List<Person> People { get; set; }
protected override void OnAppearing()
{
PopulatePeople();
}
public async void PopulatePeople()
{
List<Person> People = await App.PeopleRepo.GetAllPeople();
peopleList.ItemsSource = People;
А затем это метод GetAllPeople из класса PeopleRepository (объект PeopleRepo типа PeopleRepository также создается в классе App):
public SQLiteAsyncConnection conn;
public PeopleRepository(string db)
{
conn = new SQLiteAsyncConnection(db);
conn.CreateTableAsync<Person>().Wait();
}
public async Task<List<Person>> GetAllPeople()
{
try
{
return await conn.Table<Person>().ToListAsync();
}
catch (Exception ex)
{
Status = string.Format("Failed to retrieve data. {0}", ex.Message);
}
return new List<Person>();
}