Как правильно перебрать файл XML и отобразить значения в TextBox? - PullRequest
0 голосов
/ 06 января 2012

Я хочу просмотреть 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();
    }
}

Как бы я постоянно повторял все значения;Время таймера моего таймера составляет 5 секунд.

1 Ответ

0 голосов
/ 06 января 2012

Вы используете 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;
    }
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...