简体   繁体   中英

Windows phone 8 -> problems with adding data binding , listbox

My problem is that my items won't add to the list. I try to add 3 texts and one image location to the list. I try everything but I couldn't do it. XAML code

<ListBox Name="mylistbox" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="6" Grid.RowSpan="3">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Name="s1">
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="10"/>
                                        <ColumnDefinition Width="120"/>
                                        <ColumnDefinition Width="300"/>
                                        <ColumnDefinition Width="10"/>
                                    </Grid.ColumnDefinitions>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="10"/>
                                        <RowDefinition Height="100"/>
                                        <RowDefinition Height="30"/>
                                        <RowDefinition Height="20/"/>
                                    </Grid.RowDefinitions>
                                    <TextBlock Text="{Binding naslov}"  Tag="{Binding broj}" FontSize="32" Foreground="White" HorizontalAlignment="Center" TextWrapping="Wrap" Grid.Row="1" Grid.Column="2" />
                                    <TextBlock Text="{Binding datum}"   Foreground="White" HorizontalAlignment="Right" VerticalAlignment="Center" TextWrapping="Wrap" Grid.Row="2" Grid.Column="2"/>

                                    <Image Source="{Binding slika}" Grid.Row="1" Grid.Column="1" Grid.RowSpan="2"/>
                                </Grid>
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>

C# code

for (int i = 1; i < datum.Count; ++i)
 {
       podatak _podatak = new podatak();
       _podatak.naslov = naslovi[i];
       _podatak.datum = datum[i];

       _podatak.broj = Convert.ToString(broj);
       _podatak.slika = "http://hsin.hr/images/logo.gif";
       mylistbox.Items.Add(_podatak);
 }

I didn't test, but I think you are missing one detail, and doing a little mistake.

First: you need to bind a List to a ListBox. So, I believe you should do something like this:

List<podatak> myList = new List<podatak>();

for (int i = 1; i < datum.Count; ++i)
 {
       podatak _podatak = new podatak();
       _podatak.naslov = naslovi[i];
       _podatak.datum = datum[i];

       _podatak.broj = Convert.ToString(broj);
       _podatak.slika = "http://hsin.hr/images/logo.gif";

      myList.Add(_podatak);
 }

mylistbox.ItemsSource = myList;

And Second: add this on xaml:

<ListBox Name="mylistbox" ItemsSource="{Binding}" ...

Correcting:

As commented, doesn't need change anything on your XAML code. My mistake.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM