从ListBox中有选择地创建TextBox列表

时间:2013-07-20 11:08:43

标签: c# list windows-phone-7 windows-phone-8 windows-phone-7.8

我有一个ListBox,其中包含几个TextBlock s,一个图片和至少2个TextBox s。但是我的问题是我需要能够检索TextBox中的所有ListBox; APART从第一个开始,然后将它们分配给C#中的List

这是.xaml中的ListBox:

<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>

ListBox可能比.xaml中显示的TextBox更多,因为用户可以通过点按Image来创建更多内容。

非常感谢,感谢所有帮助。

2 个答案:

答案 0 :(得分:1)

您可以使用 Linq 非常简单地完成此操作。以下句子返回ListBox类型TextBox中除第一个之外的所有元素:

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

请记住,您必须在文件中添加using System.Linq;

答案 1 :(得分:0)

你好@Newbie我有你的解决方案..我知道它没有优化一个..但它适用于你的情况.. 我正在比较各种类型...(通过不太好的方式)..我在按钮上做...

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]);
                }
            }
        }

    }
希望它可以帮助你..