我需要将动态创建的文本框数组绑定到字符串[] 或 List<string>。这是与List<T> 问题最接近的 WinForm 控件绑定,但没有雪茄。
通常对于单个文本框,我绑定文本框的 Text 属性:
Engine engine = new Engine();
public frmMain()
{
InitializeComponent();
txtQuery.DataBindings.Add("Text",engine,"Query");
}
对于类属性:
public class Engine : IEngine, INotifyPropertyChanged
{
private string query;
public string Query
{
get { return query; }
set
{
query = value;
InvokePropertyChanged(new PropertyChangedEventArgs("Query"));
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void InvokePropertyChanged(PropertyChangedEventArgs e)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, e);
}
}
我已经尝试了一系列文本框和字符串,但没有运气:
前端:
TextBox[] txtBoxArr = new TextBox[numberOfDimensions];
for (int i = 0; i < numberOfDimensions;i++)
{
string tabName = "Dataset" + (i + 1);
tabCtrlDatasets.TabPages.Add(tabName,tabName);
txtBoxArr[i] = new TextBox();
txtBoxArr[i].Name = "txtDataset" + i ;
txtBoxArr[i].DataBindings.Add("Text",engine,"Dataset");
tabCtrlDatasets.TabPages[i].Controls.Add(txtBoxArr[i]);
}
后端:
private string[] dataset;
public string[] Dataset
{
get { return dataset; }
set
{
dataset = value;
InvokePropertyChanged(new PropertyChangedEventArgs("Dataset"));
}
}
为了让它工作,我需要知道数组中项目的索引。我不记得以前这样做过,有谁知道如何识别文本框的索引以将其绑定到字符串数组中的正确项目?
我今天有点累,有记忆障碍。