列表框中绝对路径的图像列表

时间:2014-12-23 07:07:40

标签: c# listbox windows-phone-8.1 absolute-path

我正在开发windows phone 8.1应用程序,

我有一个绝对路径的网址,我必须每次都显示动态更改的图片。

如何在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;

}

我只得到“计数节点”的最后一个“Id”,这就是问题。

我该如何解决,请帮帮我。

非常感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:0)

问题是你每次都在For循环中绑定,尝试在将所有元素添加到List后绑定它。

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

答案 1 :(得分: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;

这很好,而且非常棒!