XAML .NET MAUI错误:“无法访问已释放的对象,对象名称:'Microsoft.Maui.Platform. ContentViewGroup'“

kd3sttzy  于 2023-06-27  发布在  .NET
关注(0)|答案(1)|浏览(157)

我目前正在使用.NET MAUI开发一个应用程序,我遇到了一个无法解决的问题。当我在调试的时候,我在android平台上导航页面时捕捉到了一个奇怪的异常
该应用程序有两个选项卡:主页和自助登录后,用户将进入“主页”选项卡。但是,当我尝试从主页导航到任何其他页面时,应用程序抛出以下错误并随后崩溃:
无法访问已释放的对象。对象名称:'Microsoft.Maui.Platform.ContentViewGroup'
这是我的xaml代码:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Views.Dashboard.HomePageDashboard"
             Title="HomePageDashboard">

<Shell.TitleView>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="9*" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
            <Frame 
                           
           Grid.Column="1"
           HeightRequest="40"
           WidthRequest="40"
           CornerRadius="20"
           BackgroundColor="Transparent"
           HorizontalOptions="Center"
           VerticalOptions="Center"
           IsClippedToBounds="True"
           Padding="0"
           >
                <Border BackgroundColor="{StaticResource PrimaryColorLight}">
                    <Label Text="{Binding ProfileImageLabel}" TextColor="White" FontSize="Micro" LineBreakMode="WordWrap" HorizontalOptions="Center" VerticalOptions="Center"/>
                    <Border.GestureRecognizers>
                        <TapGestureRecognizer Command="{Binding GotoProfileCommand}"/>
                    </Border.GestureRecognizers>
                </Border>
                </Frame>
        </Grid>

    </Shell.TitleView>
 <VerticalStackLayout Margin="0,30,0,0">
                <Label Text="Categories" FontSize="Subtitle" FontAttributes="Bold" FontFamily="Bold" HorizontalOptions="Start" VerticalOptions="Start" TextColor="{AppThemeBinding Light={StaticResource Black},Dark={StaticResource Gray400}}"/>
                <Frame CornerRadius="10" Margin="0,20,0,0">

                    <ListView x:Name="listCategories" Margin="-20,-10,-20,-20"
                          BackgroundColor="Transparent" RowHeight="60"
                          SeparatorColor="Gray" SeparatorVisibility="Default"
                          SelectedItem="{Binding ItemSelectedlv}"
                          ItemSelected="OnItemSelected">

                        <ListView.ItemTemplate>

                            <DataTemplate>
                                <ViewCell>
                                    <StackLayout>
                                        <Grid x:DataType="model:HomePageListInfo">
                                            <Grid.ColumnDefinitions>
                                                <ColumnDefinition Width="2*" />
                                                <ColumnDefinition Width="7*" />
                                                <ColumnDefinition Width="*" />
                                            </Grid.ColumnDefinitions>
                                            <Image Grid.Column="0" HorizontalOptions="Center" VerticalOptions="Center"
                                           HeightRequest="50"
                                           WidthRequest="50"
                           Source="{Binding ImageResource}"
                            />
                                            <Label Grid.Column="1"
                                           Style="{StaticResource CategoryListlabelStyle}"
                                           FontSize="18"
                           Text="{Binding ListViewItemDescription}"
                           FontAttributes="Bold" />
                                            <Image Grid.Column="2" HorizontalOptions="Center" VerticalOptions="Center">
                                                <Image.Source>
                                                    <FontImageSource
                                    x:Name="fontimage"
                                            FontFamily="AwesomeSolid"
                                            Glyph="&#xf105;"
                                            Size="20"
                                            Color="{AppThemeBinding Light={StaticResource Black},Dark={StaticResource White}}"/>
                                                </Image.Source>
                                            </Image>
                                        </Grid>
                                    </StackLayout>
                                </ViewCell>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                </Frame>
            </VerticalStackLayout>

有趣的是,如果我导航到“自助”选项卡,并尝试从那里导航到其他页面,不会发生任何错误,并且应用程序按预期运行。
我已经尝试捕获并处理异常,但我仍然不确定问题的根本原因。我将非常感谢任何关于如何解决这个问题的见解或建议。
版本:VS2022 17.6我使用.net 7

ergxz8rk

ergxz8rk1#

我搜索了你提到的异常消息,在github上找到了关于MAUI application error due to entry element in background operation的类似问题。
该帧在某些情况下会导致异常,如System.ObjectDisposedException: 'Cannot access a disposed object.
因此,您可以尝试使用border in the maui,而不是使用帧。

相关问题