簡體   English   中英

WPF MultiBinding TextBox以編程方式編寫文本

[英]WPF MultiBinding TextBox Text programmatically

我的視圖中有一個ComboBox,用戶可以選擇多個TextBox來動態創建。 每個TextBox都有一個索引i ,我想將它們每個都綁定到array[i] 我搜索了一個解決方案,發現需要將MultiBinding與轉換器一起使用。

如何在C#代碼而不是XAML中為TextBox設置MultiBinding? 謝謝

編輯:我正在創建一個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]"

在ViewModel中: public string[] matrixArray{ get; set; } public string[] matrixArray{ get; set; }

我認為您應該編寫以下內容:

tb.SetBinding(TextBox.TextProperty, string.Format("matrixArray[{0}]", j + col * i))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM