我是 .Net Maui 的新手,我被困在一个可能非常愚蠢的问题上。
在 ContentPage 中,我定义了一个 ScrollView 和一个 Grid,通过用 4 列参数化它,这是 XAML 代码:
<ScrollView x:Name="scrollView">
<Grid x:Name="tabella"
ColumnDefinitions="*,2*,2*,*"
Margin="10,10,10,10" />
</ScrollView>
当页面加载时,它调用 Populate() 方法,代码如下:
private void PopolaTabella(List<ClassPrenotazione> prenotazioni)
{
tabella.RowDefinitions.Clear();
CreaIntestazione();
int riga = 1;
foreach (ClassPrenotazione prenotazione in prenotazioni)
{
AggiungiRiga(riga, prenotazione);
riga++;
}
scrollView.ForceLayout();
}
这是 CreaIntestazione() 代码:
private void CreaIntestazione()
{
tabella.RowDefinitions.Add(new RowDefinition(60));
tabella.Add(new Border
{
StrokeThickness = 1,
Stroke = Brush.Black,
BackgroundColor = Color.FromArgb("f05924")
}, 0, 0);
tabella.Add(new Label
{
Text = "Nr.",
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
}, 0, 0);
tabella.Add(new Border
{
StrokeThickness = 1,
Stroke = Brush.Black,
BackgroundColor = Color.FromArgb("f05924")
}, 1, 0);
tabella.Add(new Label
{
Text = "Data",
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
}, 1, 0);
tabella.Add(new Border
{
StrokeThickness = 1,
Stroke = Brush.Black,
BackgroundColor = Color.FromArgb("f05924")
}, 2, 0);
tabella.Add(new Label
{
Text = "Orario",
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
}, 2, 0);
}
AggiungiRiga 与 CreaIntestazione 相同,但有数据。
当页面第一次出现时,一切正常。
当从“prenotazioni”中删除一个元素时,再次调用 Populate() 命令。此时,网格不会改变。
我做了很多测试,我得到的唯一结果是将 table.RowDefinitions.Clear();
更改为 table.Clear();
并添加 Content = table
作为最后一个命令。
这样,更新后的表格就显示出来了,但是显然滚动已经不行了
你能帮帮我吗?