我正在实现 FlowListView NuGet 包,用于自定义多列列表视图。
(NuGet 包链接:https://www.nuget.org/packages/DLToolkit.Forms.Controls.FlowListView/)
一切都显示得很好。但是应用程序变得非常缓慢。在进一步查看 Live Visual Tree 后,我发现 FlowListView 中的列表项正在无限加载。我不知道是什么原因导致的。
有人能告诉我为什么会发生这种情况,以及如何停止它吗?
XAML:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:flv="clr-namespace:DLToolkit.Forms.Controls;assembly=DLToolkit.Forms.Controls.FlowListView"
xmlns:vm="clr-namespace:FlowDemo.ViewModels"
x:Class="FlowDemo.MainPage">
<ContentPage.BindingContext>
<vm:MainViewModel />
</ContentPage.BindingContext>
<StackLayout>
<flv:FlowListView FlowColumnCount="2"
RowHeight="50"
SeparatorVisibility="Default"
HasUnevenRows="false"
FlowItemsSource="{Binding Items}" >
<flv:FlowListView.FlowColumnTemplate>
<DataTemplate>
<Frame Margin="10" Padding="0" CornerRadius="6" HasShadow="True">
<Label Text="{Binding}" HorizontalOptions="Center" VerticalOptions="Center" />
</Frame>
</DataTemplate>
</flv:FlowListView.FlowColumnTemplate>
</flv:FlowListView>
</StackLayout>
</ContentPage>
视图模型:
using System.Collections.ObjectModel;
namespace FlowDemo.ViewModels
{
public class MainViewModel
{
public ObservableCollection<string> Items { get; set; } = new ObservableCollection<string>() { "Item 1", "Item 2", "Item 3", "Item 4", };
}
}
代码后台:
using DLToolkit.Forms.Controls;
using Xamarin.Forms;
namespace FlowDemo
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
FlowListView.Init();
}
}
}
编辑: 我正在使用Visual Studio 2022和.Net Standard 2.0。我还使用PropertyChanged.Fody来实现INotifyPropertyChanged。
截图: 点击此处查看图片
InitializeComponent()
之前和_App.xaml.cs_
中,但这两种方法似乎都不起作用。 - Eddie