我有一个Pivotelement,所以一个有多个站点的Windows Phone站点,每个站点都应该有5个菜单。我有一个列表,其中每个网站的每5个菜单和每个菜单必须在文本框中:
//Site 1
textbox1_site1.text = list[0].menu1;
textbox2_site1.text = list[0].menu2;
...
//Site 2
textbox1_site2.text = list[1].menu1;
textbox2_site2.text = list[1].menu2;
...
//Site 3
textbox1_site3.text = list[2].menu1;
...
这是我的名单来源。
public class Menus
{
public date Datum { get; set; }
public string menu1 { get; set; }
public string menu2 { get; set; }
...
}
public class list
{
public List<Menus> list { get; set; }
}
我无法得到它。如何在一个循环中缩短它:
for(int i=0; i<5; i++)
{
textbox[i+1]_site[i+1] = list[i].menu1;
...
}
我知道这是一个初学者的问题而且有点愚蠢,但我不明白。
答案 0 :(得分:0)
据我所知,您有一个值列表,并希望在文本框中显示每个值。你可以用一点数据绑定来做到这一点。您需要将ItemsControl的ItemsSource属性设置为您的数据源(值列表)。在此之后,您只需修改ItemsControl.ItemTemplate属性即可。看看下面的代码是否有帮助。正如你所看到的,一切都在代码隐藏中以保持简短。
//in ctor, after InitializeComponents()
DataContext = this;
//create the source of data (values to display in text boxes)
public List<string> Data{
get{
return new List<string>(){"item1", "item2"};
}
}
其余部分在xaml文件中。创建一个ItemsControl,从Data属性中获取数据并显示它。
<ItemsControl ItemsSource="{Binding Data}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding Mode=TwoWay}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
这应该可以解决你的问题