【发布时间】:2014-04-30 21:57:14
【问题描述】:
我正在就 C# 中的数据绑定寻求帮助。
我有几个课程:
[Serializable()]
public class Norma
{
public BindingList<NormElement> Parameter;
public Norma()
{
Parameter = new BindingList<NormElement>();
}
public string Name { get; set; }
}
[Serializable()]
public class NormElement
{
public decimal M { get; set; }
public decimal Sigma { get; set; }
}
所以,当 Norma 对象 N (= new Norma()) 在构造函数中形成时,我正在执行以下操作:
normBindingSource.DataSource = N;
textBox1.DataBindings.Add("Text", normBindingSource, "Name");
有效!
但是当我尝试像这样绑定时,它不会:
normBindingSource.DataSource = N;
textBox1.DataBindings.Add("Text", normBindingSource, "Name");
textBox2.DataBindings.Add("Text", normBindingSource, "Parameter[0].Sigma");
我做错了什么?在绑定之前,我正在检查参数列表是否填充了数字,这里一切正常。在调试中,我看到 normBindingSource.DataSource 已初始化,我可以在那里看到 Parameter 字段。
我在这里尝试了很多选项来成功,一开始 Parameter 字段只是数组,但后来我发现它应该是 INotifyPropertyChanged,所以现在我来到了这个变体。
提前致谢!
【问题讨论】:
-
为什么 Parameter[0].Sigma 在引号中?
-
您赋予
Parameter[0].Sigma值的第三个参数应该是要绑定到的属性的名称。您提供的值不是属性名称。