У меня есть ListView, определенный в xaml, как показано ниже:
<ListView x:Name = "Iv" ItemSelected = "Iv_ItemSelected" ItemsSource = "{Binding deviceListEx}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text = "{Binding .}" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Это работает при загрузке первой страницы, однако на платформе iOS, когда я перехожу на другую страницу, а затем возвращаюсь на страницу просмотра списка, нажав кнопку «Назад», страница пуста, что означает, что просмотр списка не заполняется.
Приложение написано на C# и отлично работает на android.
Кто-нибудь сталкивался с такой проблемой или подобной проблемой? Дайте мне знать, как я могу это решить.
Это код. Источник элемента списка является результатом сканирования Bluetooth, и это ObservableCollection<string>.
deviceList.Clear();
deviceListEx.Clear();
var scanner = CrossBleAdapter.Current.ScanWhenAdapterReady().
Subscribe(ScanResult =>
{
if (ScanResult.Device.Name != null)
{
deviceList.Add(ScanResult.Device);
deviceListEx.Add(ScanResult.Device.Name.ToString());
// unique bluetooth devices with name to listview
Iv.ItemsSource = deviceListEx.Distinct();
}
});
Не в андроиде. Только в платформе ios. Опубликовал код C#, который я использую для заполнения списка. Пожалуйста, посмотрите
Странно, вроде правильно. Вы можете исправить это, если заполните свой ListView в методе Xamarin.Forms.Page.OnAppearing.
Пробовал то, что вы предлагаете. Но не помог мне избавиться от этой проблемы :(
Это странно ... Вызывается ли при появлении метод, когда вы возвращаетесь к нему? Вам следует ознакомиться с документацией LifeCycle Page: docs.microsoft.com/en-US/xamarin/xamarin-forms/app-fundament als /…
Вызывается ли появляющийся метод, когда вы к нему вернетесь? - Да. Также deviceListEx содержит элементы.
проверьте, выполняется ли deviceListEx.Clear(); где-либо еще.





Проблемы появляются в android? Можете ли вы опубликовать код и источник элемента, который вы используете