我想循环遍历xml文件并在文本框中显示值,但我的文本框一次只显示一个值。在调试模式下,我能够看到所有值。这是我的代码。
void timer1_Tick(object sender, EventArgs e)
{
XDocument xd = XDocument.Load(@"D:\satish1\na.xml");
var query = from p in xd.Descendants("item")
select new
{
//name = p.Element("title").Value,
des = p.Element("description").Value
};
foreach (var p in query)
{
//tbs.Text = p.name.ToString();
title.Text = p.des.ToString();
}
}
我将如何不断重复所有价值观;我的计时器TimeSpan是5秒。
答案 0 :(得分:0)
您正在使用 foreach ,因此,当您的代码退出该函数时,您将只为该文本框分配最后一个值。做这样的事情:
//Have one private variable, to store data from XML
private int _counter = 0;
private List<string> _xmlData = new List<string>();
void timer1_Tick(object sender, EventArgs e)
{
if(_xmlData.Count == 0) //Populate your list
{
_counter = 0;
XDocument xd = XDocument.Load(@"D:\satish1\na.xml");
var query = from p in xd.Descendants("item")
select new
{
des = p.Element("description").Value
};
foreach (var p in query) _xmlData.Add(p.des.ToString());
}
if(_counter < _xmlData.Count)
title.Text = _xmlData[_counter];
_counter++;
//If you require
if(_counter == _xmlData.Count)
{
timer.Stop(); //Stop the timer
_xmlData.Clear();
_counter = 0;
}
}
希望这有帮助。