2014-12-23 4 views
0

Я занимаюсь разработкой Windows Phone 8.1 приложения,Список изображений от абсолютного пути в Listbox

У меня есть URL-адрес, который абсолютный путь, и я должен показать изображения, которые динамически изменяется каждый раз.

Как мне показать их внутри ListBox?

Вот мой XML-файл:

<root> 
    <row> 
    <Id>1234</Id> 
    <Name>ABCD</projectName> 
    <isImage>1</isImage> 
    </row> 

<row> 
    <Id>5678</Id> 
    <Name>PQRS</Name> 
    <isImage>1</isImage> 
    </row> 
</root> 

Смотрите мой XAML код ниже:

<ListBox x:Name="listBox1" Width="480" Height="677" HorizontalAlignment="Left" Margin="0,0,0,59" VerticalAlignment="Top" ItemsSource="{Binding}" SelectedItem="{Binding}" SelectionMode="Extended"> 

<ListBox.ItemTemplate> 
    <DataTemplate> 

    <StackPanel Orientation="Horizontal" Background="White" Height="80" Margin="0,10,0,0"> 

    <Image x:Name="image1" Source="{Binding isImage}" Stretch="Uniform" HorizontalAlignment="Center" Height="70" Width="90" Margin="0,0,0,0"/> 

     </StackPanel> 

    </DataTemplate> 
</ListBox.ItemTemplate> 

Вот мой код:

XDocument doc = XDocument.Parse(e.Result); 

var nodes = doc.Descendants("row").ToList(); 

for (int i = 0; i < nodes.Count; i++) 
{ 
    string newid = nodes[i].Element("Id").Value; 

    string uri = "https://www.XYZ.com/abc/getDocument.htm?username=" + name + "&password=" + pwd + "&Id=" + newid; 

    List<LIST> list = new List<LIST>(); 

    list = (from query in doc.Descendants("row") 
     select new LIST 
     { 
     Id = query.Element("Id").Value, 
     Name = query.Element("Name").Value, 
     isImage = uri 
     }).ToList(); 

    listBox1.DataContext = list; 

} 

Я получаю только последний «идентификатор» «счетных узлов» , это проблема.

Как его разрешить, пожалуйста, помогите мне.

Любая помощь была бы принята с благодарностью.

Спасибо!

ответ

0

Проблема в том, что вы привязываетесь каждый раз внутри цикла For Loop, попробуйте связать его, как только все элементы будут добавлены в список.

for (int i = 0; i < nodes.Count; i++) 
{ 
    Your logic 
} 
listBox1.DataContext = list; 
+0

Я получаю узлы «шесть» потомков, поэтому есть «шесть» узлов «строки». Но я получаю только один образ шесть раз. Я попробовал ваш код. @Sajeetharan –

+0

, потому что вы привязываете одно и то же изображение! – Sajeetharan

+0

Тогда как с этим бороться, я застрял здесь последние два дня. Пожалуйста, помогите мне, брат. Благодарю. @Sajeetharan –

0

Я нашел решение.

Смотрите код ниже:

XDocument doc = XDocument.Parse(e.Result); 
List<LIST> list = new List<LIST>(); 
var nodes = doc.Descendants("row").ToList(); 

for (int i = 0; i < nodes.Count; i++) 
{ 
    string newid = nodes[i].Element("Id").Value; 
    string uri = "https://www.XYZ.com/abc/getDocument.htm?username=" + name + "&password=" + pwd + "&Id=" + newid; 

    list.Add(new LIST() { isImage = uri}); 
} 

listBox1.DataContext = list; 

Это работает отлично и великолепно !!

Смежные вопросы