2012-01-06 5 views
0

XMLファイルをループして値をテキストボックスに表示したいのですが、テキストボックスには一度に1つの値しか表示されません。デバッグモードでは、私はすべての値を見ることができます。ここに私のコードです。どのようにXmlファイルを適切にループして、TextBoxに値を表示しますか?

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

あなたはあなたのコードは関数を終了し、これまで、テキストボックスに割り当てられた最後の値だけを持つことになりますので、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; 
    } 
} 

希望します。

+0

私はいくつかのコードで私を説明することができます – satish

+0

素晴らしいそれはうまくいった、助けてくれてありがとうの助けを借りて – satish

+0

これを答えとしてマークする方法 – satish

関連する問題