在c# WP8中向文本框传递变量
本文关键字:变量 文本 WP8 | 更新日期: 2023-09-27 18:19:15
我有一个透视元素,所以一个有多个站点的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;
...
}
我知道这是一个初学者的问题,而且有点蠢,但是我不明白。
根据我的理解,您有一个值列表,并希望在文本框中显示每个值。您可以通过一点数据绑定来实现这一点。您需要将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>
这应该能解决你的问题