Warning: Cannot modify header information - headers already sent by (output started at /var/www/lalieno.it/index.php:48) in /var/www/lalieno.it/inc/cookie.php on line 3
a cadenza discontinua
Come se fossi
BLOG

[Visual Studio 2013 C # Windows Phone 8.1] - hHow to use the ListView ItemTemplate and loop through the selected ListViewItem

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;
            }

di GuiZ
25/11/2014

Commenta

We'll never share your email with anyone else.

marco - circa 9 anni fa
cerco un programmatore visual studio. qualcuno può aiutarmi?. Grazie

GuiZ - circa 9 anni fa
Dimmi!