Мне трудно с XAML в Xamarin. Формы: страница вызывается и отображается без загрузки данных из ListView (хотя ListView визуализируется, поскольку он меняет цвет фона в своей области).
Затем, после того как я коснулся области ListView, данные были представлены, то есть изначально ListView ничего не показывает, а после моего прикосновения к экрану он отображает данные. Однако у меня нет событий, вызывающих обновление. Я уже убедился в коде, что данные получены им правильным образом. У кого-нибудь есть предложения?
Ниже приведен код XAML:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Coletas.Layouts.DetalheColeta">
<ContentPage.ToolbarItems>
<ToolbarItem Name="itemVisualizar" Order="Primary" Icon="pesquisar.png" Text="Visualizar" Priority="0" />
</ContentPage.ToolbarItems>
<ListView x:Name="Coleta" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" BackgroundColor="#FFCC80">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Vertical">
<Label Text="{Binding Coleta, StringFormat='Coleta {0:000000}'}" FontAttributes="Bold" FontSize="12"/>
<Label Text="{Binding Remetente}" FontAttributes="Bold" FontSize="12"/>
<Label Text="{Binding EnderecoRem}"/>
<Label Text="{Binding BairroRem}"/>
<Label Text="{Binding CidadeRem}"/>
<Label Text="{Binding ReferenciaRem}"/>
<Label Text="{Binding Destinatario}" FontAttributes="Bold" FontSize="12"/>
<Label Text="{Binding CidadeDes}"/>
<StackLayout Orientation="Horizontal" >
<Label Text="{Binding Peso, StringFormat='Peso: {0:0.00}'}"/>
<Label Text=" "/>
<Label Text="{Binding Quantidade, StringFormat='Volume: {0:0.00}'}"/>
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>
Код, который вызывает страницу DetalheColeta, приведен ниже. Этот код находится на другой отдельной странице:
private void GradeColetas_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
var item = e.SelectedItem as GridList;
if (item != null)
{
var id = item.Coleta;
Navigation.PushAsync(new DetalheColeta(id));
((ListView)sender).SelectedItem = null;
};
}
Есть идеи?