0

我有一个ListBox包含几个TextBlocks、一个 Image 和至少 2 个TextBoxs。但是我的问题是我需要能够检索;TextBox中的所有(s)ListBox。除了第一个,然后将它们分配给ListC# 中的 a。

这是 .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>

ListBoxTextBox的 s 可能比 .xaml 中显示的要多,因为用户可以通过点击 .xaml 来创建更多Image

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

4

2 回答 2

1

您可以使用Linq非常简单地做到这一点。以下句子返回除第一个之外的ListBoxof 类型的所有元素:TextBox

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

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

于 2013-07-20T13:26:34.367 回答
0

你好@Newbie我有你的解决方案..我知道它不是优化的..但它适用于你的情况..我正在比较类型..这里(不是好方法)..我正在做一个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]);
                }
            }
        }

    }

希望对你有帮助。。

于 2013-07-20T11:57:02.667 回答