我在xaml中有一个搜索栏和一个列表视图。
下面是我的搜索栏文本更改代码:
viewModel.FilterList(searchTicket.Text);在我的ViewModel类中:
我有一个observableCollection列表,如下:
public ObservableCollection<Grouping<string, Ticket>> TicketList
{
get { return _ticketList; }
set { _ticketList = value; OnPropertyChanged(); }
}
public void FilterList(string text)
{
GroupCollections(TicketListNew.Where(Tl => Tl.CustomerName.ToLower().Contains(searchText.ToLower());
}
private void GroupCollections(List<Ticket> ticketListNew)
{
var sorted = from ticket in ticketListNew
orderby ticket.DelPUDate
group ticket by GetTicketDate(ticket.DelPUDate) into ticketListGroup
select new Grouping<string, Ticket>(ticketListGroup.Key, ticketListGroup);
if (TicketList == null) TicketList = new ObservableCollection<Grouping<string, Ticket>>(sorted);
else
{
TicketList.Clear();
foreach (var item in sorted)
{
TicketList.Add(item);
}
}
}当代码转到其他部分时,需要花费大量时间来获取数据并填充列表(列表停滞了5-6秒)。然而,同样的代码在android设备上工作得很完美。
在android中,假设我们点击第15个列表项,它会打开一个页面。从页面返回时,列表停留在第15个列表项上。而在iOS中,list会停留5-6秒,然后滚动到顶部。
我需要做些什么才能在iOS设备上同样工作吗?
有什么帮助吗?
发布于 2019-01-24 01:58:01
我还是想不出问题所在。现在,我更改了代码,仅当entry中有两个字母时才搜索列表。因此,该列表将很小,并且在过滤该列表时不存在延迟
https://stackoverflow.com/questions/54154517
复制相似问题