Есть ли лучший способ сделать это для цикла?
Добрый день, у меня есть несколько изображений в моем проекте Xamarin Forms, мне нужно создать неопределенное количество текстовых полей, это должно работать так, как если бы пользователь открыл XML-файл и ему нужно десериализовать его, создать текстовое поле и добавить его на страницу, если добавь еще один, тогда будет 2..
Проблема здесь в том, что, что мне делать, когда пользователь получает сотни или даже тысячи этих текстовых полей, приложение вылетает?
Поэтому я хочу спросить, есть ли лучший способ улучшить мой код, чтобы приложение загружалось нормально, как файловый менеджер, не отставая даже от множества элементов.
Как приложение Facebook, которое обрабатывает неопределенное количество сообщений.
Ниже приведен код для цикла:
foreach (string path in FileList)
{
Textbox TB = new TextBox();
//TBProperties
}
1 ответ
Я только что попробовал 1000 записей в ScrollView против 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;
}
}