我有一个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
来创建更多内容。
非常感谢,感谢所有帮助。
答案 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]);
}
}
}
}
希望它可以帮助你..