на ней кнопка с свойством Clicked="Btn1Clicked", в коде страницы
async void Btn1Clicked (object sender, EventArgs args)
{
await Navigation.PushAsync(new Page2());
}
На странице Page2 два контрола – DataGrid и кнопка. Данные в Datagrid загружаются из ObservableCollection, созданной ранее и уже находящейся в памяти. В коллекции в одном поля Image = ImageSource.FromUri(new Uri ("https://адрес картинки.jpg")), соответственно в Datagrid есть поле Image. При нажатии кнопки перехода с Page1 приложение открывает страницу Page 2 через 3-5 секунд. Если закомментировать Datagrid, то страница открывается менее чем за 1 секунду. Я понимаю, что загрузка рисунков с интернета может занимать некоторое время, но не очень удобно, что после нажатия кнопки ничего не происходит. У Syncfusion есть контрол SfShimmer (https://help.syncfusion.com/xamarin/shimmer/overview), который бы мне подошёл. Я его добавил в Xaml и DataGrid перенес в <shimmer:SfShimmer.Content>. Проблема заключается в том, что он инициализируется одновременно с Datagrid смысла от него никакого нет, т.к. при нажатии кнопки страница все равно открывается не сразу. Можно ли каким то образом не прорисовывать Datagrid при вызове InitializeComponent(); а сделать это позже в коде, чтобы страница открывалась сразу, пока отрисовывается DataGrid отображался Shimmer либо другой индикатор загрузки?
Как коллекцию задаёте и когда?
Обсуждают сегодня