【发布时间】:2013-02-11 10:47:20
【问题描述】:
我需要将动态创建的文本框数组绑定到字符串[] 或列表。这是最近的WinForm Controls binding to a List<T> problem,但没有雪茄。
通常对于单个文本框,我会绑定文本框的 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"));
}
}
为了让它工作,我需要知道数组中项目的索引。我不记得以前这样做过,有谁知道如何识别文本框的索引以将其绑定到字符串数组中的正确项目?
我今天有点累了,内存卡了。
【问题讨论】:
-
如果有人看到这个,请给我一个提示,为什么我的问题最终会获得“Tumbleweed”徽章?
-
我正在努力 :)
标签: c# arrays winforms data-binding