.net 在滚动ListView期间出现错误“无法访问已释放的对象”

gcuhipw9  于 2023-01-14  发布在  .NET
关注(0)|答案(1)|浏览(255)

出现错误:
'无法访问已释放的对象。对象名称:"Microsoft. Maui.控件.处理程序.兼容性. FrameRenderer'."
当我向ListView添加更多项目并尝试滚动时,会发生这种情况。
这是我在XAML中对ListView的定义:

<ListView x:Name="PlayerList" ItemsSource="{Binding Players}" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="10,0,10,0" HasUnevenRows="True" SelectionMode="None" >
    <ListView.ItemTemplate>
        <DataTemplate x:DataType="x:String">
            <ViewCell>
                <Frame BorderColor="{StaticResource PurpleElement1}" BackgroundColor="{StaticResource PurpleElement1}" Margin="5" CornerRadius="7" >
                   <Label Text="{Binding .}" HorizontalOptions="Center" VerticalOptions="Center" Margin="5,0,5,0" />
                </Frame>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

玩家是List<String>
当定义如下所示时,一切正常:

<ListView x:Name="PlayerList" ItemsSource="{Binding Players}" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="10,0,10,0" HasUnevenRows="True" SelectionMode="None" />

但是我想定义一下我的列表的外观。

kpbwa7wx

kpbwa7wx1#

我在github https://github.com/dotnet/maui/issues/11323上发现了这个问题。不幸的是,这个错误似乎不会很快得到修复。我可以通过将框架放置在网格中来解决这个问题。

<ListView x:Name="PlayerList" ItemsSource="{Binding Players}" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="10,0,10,0" HasUnevenRows="True" SelectionMode="None" >
    <ListView.ItemTemplate>
        <DataTemplate x:DataType="x:String">
            <ViewCell>
                <Grid>
                    <Frame BorderColor="{StaticResource PurpleElement1}" BackgroundColor="{StaticResource PurpleElement1}" Margin="5" CornerRadius="7" >
                        <Label Text="{Binding .}" HorizontalOptions="CenterAndExpand" VerticalOptions="Center" Margin="5,0,5,0" HeightRequest="50"/>
                    </Frame>
                </Grid>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

相关问题