更新后网格不变

问题描述 投票:0回答:0

我是 .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 作为最后一个命令。 这样,更新后的表格就显示出来了,但是显然滚动已经不行了

你能帮帮我吗?

c# grid maui .net-7.0
© www.soinside.com 2019 - 2024. All rights reserved.