我正在开发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”,这就是问题。
我该如何解决,请帮帮我。
非常感谢任何帮助。
谢谢!
答案 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;
这很好,而且非常棒!