我有一系列TextBlock控件,如下所示:
<TextBox Name="tb1"/>
<TextBox Name="tb2"/>
<TextBox Name="tb3"/>
<TextBox Name="tb4"/>
我有一个值列表,我想绑定到这些文本框,比如列表:
List<String> texts = new List<String>();
texts.Add("test1");
texts.Add("test2");
texts.Add("test3");
texts.Add("test4");
目前,我要做的是手动设置TextBoxes的值,如下所示:
tb1.Text = texts[0];
tb2.Text = texts[1];
tb3.Text = texts[2];
tb4.Text = texts[3];
是否有可能以某种方式在循环中执行此操作?也许更改XAML以获取列表或以编程方式获取TextBoxes?非常感谢。
答案 0 :(得分:5)
<ItemsControl Items="{Binding myValues}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding}"></TextBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
在你的代码后面声明一个属性:
public string myValues { get return new[] { "foo", "bar" }; }
并在构造函数后面的代码中将此控件设置为其datacontext:
this.DataContext = this;
答案 1 :(得分:0)
您可以访问绑定中的索引值 - 无需循环。从previous SO answer查看此Ivan Towlson。 Ivan在该示例中使用了字符串索引器,但您也可以使用数字索引器。