Итак, у меня есть следующий код, который динамически создает ViewCells для моего TableView
:
XAML:
<StackLayout>
<TableView Intent="Settings">
<TableView.Root>
<TableSection x:Name="tableSection"></TableSection>
</TableView.Root>
</TableView>
</StackLayout>
С#:
categories = getCategories();
foreach (var category in categories)
{
var viewCell = new ViewCell
{
View = new StackLayout()
{
Padding = new Thickness(20, 0, 20, 0),
HorizontalOptions = LayoutOptions.FillAndExpand,
Children = {
new StackLayout() {
Orientation = StackOrientation.Horizontal,
VerticalOptions = LayoutOptions.CenterAndExpand,
Children = {
new StackLayout() {
HorizontalOptions = LayoutOptions.StartAndExpand,
Children = {
new Label { Text = category.Name}
},
new StackLayout() {
HorizontalOptions = LayoutOptions.EndAndExpand,
Orientation = StackOrientation.Horizontal,
Children = {
new Label { Text = category.Count},
new Image { Source = "right1.png",
IsVisible = category.Selected }
}
}
}
}
}
}
};
viewCell.Tapped += (sender, e) =>
{
if (category.Selected == false)
{
App.DB.UpdateSelected(true);
}
else
{
App.DB.UpdateSelected(false);
}
categories = getCategories();
totalPhraseCount = getTotalPhraseCount();
Title = totalPhraseCount.ToString() + " phrases";
};
tableSection.Add(viewCell);
}
То, что я хотел сделать, - это когда я нажимаю на ячейку представления для обновления выбранного свойства, данные в представлении таблицы также обновляются. В ListView я могу вызвать событие ItemSelected и снова вызвать ItemSource с обновленными категориями. Возможно ли это с помощью TableView?