有没有更好的方法来做这个for循环?
Is there any better way to do this for loop?
你好,我的 Xamarin Forms 项目中有几张图片,我需要创建未定义数量的文本框,这应该像用户打开 XML 文件一样工作,它应该反序列化它,创建一个文本框并将其添加到页面,如果您添加另一个,则它将是 2..
这里的问题是,当用户收到数百甚至数千个这样的文本框时,应用程序会崩溃,我该怎么办?
所以我想问一下是否有更好的方法来改进我的代码,让应用程序正常加载,就像文件浏览器一样,即使有很多元素也不会滞后。
喜欢处理未定义数量的帖子的 Facebook 应用程序。
循环代码如下:
foreach (string path in FileList)
{
Textbox TB = new TextBox();
//TBProperties
}
我刚刚在 ScrollView 中尝试了 1000 个条目,而在具有 1000 个项目的 ListView 和具有单个条目的项目模板中进行了比较。 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;
}
}
你好,我的 Xamarin Forms 项目中有几张图片,我需要创建未定义数量的文本框,这应该像用户打开 XML 文件一样工作,它应该反序列化它,创建一个文本框并将其添加到页面,如果您添加另一个,则它将是 2..
这里的问题是,当用户收到数百甚至数千个这样的文本框时,应用程序会崩溃,我该怎么办?
所以我想问一下是否有更好的方法来改进我的代码,让应用程序正常加载,就像文件浏览器一样,即使有很多元素也不会滞后。
喜欢处理未定义数量的帖子的 Facebook 应用程序。
循环代码如下:
foreach (string path in FileList)
{
Textbox TB = new TextBox();
//TBProperties
}
我刚刚在 ScrollView 中尝试了 1000 个条目,而在具有 1000 个项目的 ListView 和具有单个条目的项目模板中进行了比较。 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;
}
}