Поэтому у меня есть следующий код, который создает ViewCells для моего TableView
динамически:Как обновить данные TableView после нажатия ViewCell в форматах Xamarin?
XAML:
<StackLayout>
<TableView Intent="Settings">
<TableView.Root>
<TableSection x:Name="tableSection"></TableSection>
</TableView.Root>
</TableView>
</StackLayout>
C#:
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?
Почему вы хотите использовать TableView? Ответ на этот вопрос важен для правильного решения. Если вы планируете иметь много строк в TableView, вам нужно будет проявить творческий подход к своему решению. Я хочу помочь, но вам нужно еще несколько советов о том, чего вы пытаетесь достичь в приложении с помощью этого TableView (например, это страница настроек или отображение динамических строк для пользователей и т. Д.). – BrewMate