在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;
    ...
}

我知道这是一个初学者的问题,而且有点蠢,但是我不明白。

在c# WP8中向文本框传递变量

根据我的理解,您有一个值列表,并希望在文本框中显示每个值。您可以通过一点数据绑定来实现这一点。您需要将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>

这应该能解决你的问题