我的视图中有一个ComboBox,用户可以选择动态创建的TextBox。
每个TextBox都有一个索引i
,我想将它们中的每一个绑定到array[i]
。
我搜索了一个解决方案,发现我需要将MultiBinding与转换器一起使用。
如何在C#代码中为TextBox设置MultiBinding,而不是在XAML中? 感谢
修改 我正在创建一个textBoxes网格,以创建一个矩阵, 我想将它们绑定到一个包含此矩阵作为向量的数组。 我的代码:
myGrid.Children.Clear();
myGrid.RowDefinitions.Clear();
myGrid.ColumnDefinitions.Clear();
int row = int.Parse(comboBoxRow.SelectedValue.ToString());
int col = int.Parse(comboBoxCol.SelectedValue.ToString());
for (int i = 0; i < row; i++)
{
myGrid.RowDefinitions.Add(new RowDefinition());
}
for (int i = 0; i < col; i++)
{
myGrid.ColumnDefinitions.Add(new ColumnDefinition());
}
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
TextBox tb = new TextBox();
tb.SetValue(Grid.RowProperty, i);
tb.SetValue(Grid.ColumnProperty, j);
tb.SetBinding(TextBox.TextProperty, "matrixArray[j + col * i]")
myGrid.Children.Add(tb);
}
}
那么我需要写什么而不是:"array[j + col * i]"
?
:
public string[] matrixArray{ get; set; }
答案 0 :(得分:0)
我认为你应该写下如下内容:
tb.SetBinding(TextBox.TextProperty, string.Format("matrixArray[{0}]", j + col * i))