2013-07-20 113 views
0

我有一個ListBox其中包含一對TextBlock s,一個圖像和至少2個TextBox s。然而我的問題是,我需要能夠檢索ListBox中的所有TextBox(s);從第一個開始,然後將它們分配給C#中的List從列表框中選擇性地創建文本框列表

這裏是的.xaml列表框:

<ListBox Margin="0,-20,0,0" Height="548" Name="listBoxNew"> 
    <TextBlock Name="textBlockName" Text="Name"/> 
    <TextBox Name="textBoxName" Width="420" Margin="-12,0,0,0"/> 
    <TextBlock Name="textBlockAdd" Text="Add" Margin="0,10,0,0"/> 
    <TextBox Name="textBoxAdd" Width="420" Margin="-12,0,0,0"/> 
    <Image Name="imageAdd" Source="/SecondApp%2b;component/Images/buttonAdd1.png" 
      Height="50" Margin="0,5,0,0" Tap="imageAdd_Tap" 
      toolkit:TiltEffect.IsTiltEnabled="True" 
      ManipulationStarted="imageAddExersize_ManipulationStarted" 
      ManipulationCompleted="imageAddExersize_ManipulationCompleted" /> 
</ListBox> 

列表框可以具有更多TextBox總比中的.xaml所示,當用戶可以通過點擊在Image創造更多。

非常感謝,所有幫助表示讚賞。

回答

1

您可以非常簡單地使用Linq的做到這一點。下面的語句返回所有從TextBox類型的ListBox元素除了第一個:

var textBoxList = listBoxNew.Items.Where(x => x.GetType() == typeof(TextBox)).Skip(1).ToList(); 

記住,你必須添加using System.Linq;到您的文件。

+0

謝謝! '使用System.Linq;'已經包含在解決方案中了。 – Newbie

0

hello @Newbie我有你的解決方案..我知道它沒有優化one..but它正在爲你的情況.. 我比較的類型..在這裏(通過不好的方式)..i馬做的一個關於buttonclick ..

List<object> lstobj; 

    private void Button_Click_2(object sender, RoutedEventArgs e) 
    { 
     int t = listBoxNew.Items.Count(); 
     lstobj = new List<object>(); 
     TextBox obj = new TextBox(); 
     int p = 0; 
     for (int i = 0; i < t; i++) 
     { 
      if(listBoxNew.Items[i].GetType()==obj.GetType()) 
      { 
       if (p == 0) 
       { 
        p = 1; 
        continue; 
       } 
       else 
       { 
        lstobj.Add(listBoxNew.Items[i]); 
       } 
      } 
     } 

    } 

希望它可以幫助你..