早上好,我在Xamarin Forms项目中有几张图片,我需要创建一个未定义数量的文本框,这应该像用户打开XML文件一样工作,并且应该反序列化它,创建一个文本框并将其添加到页,如果添加另一个,则为2。.
这里的问题是,当用户收到数百甚至数千个此文本框时,我该怎么办,应用会崩溃?
所以我想问一下是否有更好的方法来改进我的代码,因此应用程序可以正常加载,就像文件浏览器一样,即使有很多元素也不会滞后。
就像处理未定义帖子数的Facebook应用一样。
以下是循环的代码:
foreach (string path in FileList)
{
Textbox TB = new TextBox();
//TBProperties
}
答案 0 :(得分:3)
我刚刚在ScrollView和ListView中尝试了1000个条目,而ListView中包含1000个条目和一个模板(具有单个条目)。 ListView具有更大的响应速度,因为它正在回收视图。
XAML:
<ListView x:Name="lst"
ItemsSource="{Binding Items}"
CachingStrategy="RecycleElement"
VerticalOptions="FillAndExpand"
IsPullToRefreshEnabled="False"
HasUnevenRows="False">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Entry Text="{Binding Text}"></Entry>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
C#:
public partial class MainPage : ContentPage
{
public class Item
{
public string Text { get; set; }
}
public List<Item> Items { get; set; }
public MainPage()
{
InitializeComponent();
}
private void ContentPage_Appearing(object sender, EventArgs e)
{
Items = new List<Item>();
for (int i = 0; i < 1000; i++)
{
Items.Add(new Item()
{
Text = Guid.NewGuid().ToString()
});
}
lst.ItemsSource = Items;
}
}