In this practical overview seen how populate a ListView using a ItemTemplate from a hypothetical JSON and its subsequent iteration between the elements. It was made in C# for Windows Phone 8.1 .
Primarily declare the ListView and its ItemTemplate in XALM of the Page.
<ListView Grid.Row="1" Grid.ColumnSpan="2" x:Name="lvSpese" SelectionChanged="lvSpese_SelectionChanged" SelectionMode="Single"> <ListView.ItemTemplate> <DataTemplate> <Grid Margin="2,0" Width="399"> <Grid.ColumnDefinitions> <ColumnDefinition Width="1*" /> <ColumnDefinition Width="2*" /> <ColumnDefinition Width="2*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="1*" /> <RowDefinition Height="1*" /> </Grid.RowDefinitions> <TextBlock Grid.Column="0" Grid.RowSpan="2" Text="{Binding Importo}" Foreground="{Binding ImportoColor}" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="20"/> <TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding Movimento}" VerticalAlignment="Center"/> <TextBlock Grid.Column="1" Grid.Row="1" Text="{Binding Conto}" VerticalAlignment="Center" /> <TextBlock Grid.Column="2" Grid.Row="0" Text="{Binding Id}" VerticalAlignment="Center"/> <TextBlock Grid.Column="2" Grid.Row="1" Text="{Binding Data}" VerticalAlignment="Center" /> </Grid> </DataTemplate> </ListView.ItemTemplate> <ListView.ItemsPanel> <ItemsPanelTemplate> <VirtualizingStackPanel> <VirtualizingStackPanel.ChildrenTransitions> <TransitionCollection> <ContentThemeTransition /> </TransitionCollection> </VirtualizingStackPanel.ChildrenTransitions> </VirtualizingStackPanel> </ItemsPanelTemplate> </ListView.ItemsPanel> <x:String>One</x:String> </ListView>
In cs declare class support for binding of the ItemTemplate
public class LvItemTemplate
{
public string Importo { get; set; }
public string ImportoColor { get; set; }
public string Movimento { get; set; }
public string Id { get; set; }
public string Data { get; set; }
public string Conto { get; set; }
}
Suppose you populate the ListView from a hypothetical Json or from any other source
for (int i = 0; i < subArray.Count; i++) { JsonObject jsonAppObj = subArray[i].GetObject(); items.Add(new LvItemTemplate() { Data = jsonAppObj.GetNamedString("data_movimento"), Importo = jsonAppObj.GetNamedString("importo"), ImportoColor = Decimal.Parse(jsonAppObj.GetNamedString("importo")) > 0 ? "#8BC34A" : "#F44336", Conto = jsonAppObj.GetNamedString("conto"), Movimento = jsonAppObj.GetNamedString("movimento"), Id = jsonAppObj.GetNamedString("id") }); }
Now we iterate, for example by performing the selected cas class template to get the values of the item selected.
for (int i = 0; i < lvSpese.SelectedItems.Count; i++) { var tmpItem = lvSpese.SelectedItems[i] as LvItemTemplate; var id = tmpItem.Id; }