gpt4 book ai didi

c# - 为什么我的绑定(bind)失败?

转载 作者:太空宇宙 更新时间:2023-11-03 17:55:33 25 4
gpt4 key购买 nike

我收到“无法绑定(bind)到数据源上的属性或列”(在包含“<-- 这里!”的行上)附加评论):

List<QHQuad> listQH = PlatypusData.GetQHForPlatypusAndDay(platypusId, dow);
foreach (var quad in listQH)
{
int QHCell = quad.QH;
if ((QHCell >= 1) || (QHCell <= QUARTER_HOUR_COUNT))
{
string PH1CellToPopulate = string.Format("textBoxA_{0}", QHCell);
string PH2CellToPopulate = string.Format("textBoxB_{0}", QHCell);
string PH3CellToPopulate = string.Format("textBoxC_{0}", QHCell);
var tb = (TextBox)this.Controls.Find(PH1CellToPopulate, true).First();
tb.DataBindings.Add(new Binding("Text", quad, "Ph1")); // <-- here!
tb = (TextBox)this.Controls.Find(PH2CellToPopulate, true).First();
tb.DataBindings.Add(new Binding("Text", quad, "Ph2"));
tb = (TextBox)this.Controls.Find(PH3CellToPopulate, true).First();
tb.DataBindings.Add(new Binding("Text", quad, "Ph3"));
}
}

在故障点,quad包含四个值:QHCell,为1; Ph1,为空字符串; Ph2,为空字符串;和 Ph3,即“1”

更新

我认为可见性不是问题,因为我能够访问 quad.QH;此外,该类(class)是公开的。

我得到的更完整的异常是“System.ArgumentException 未被用户代码处理 Message=Cannot bind to the property or column Ph1 on the DataSource.参数名称:dataMember"

如果我更改问题行:

tb.DataBindings.Add(new Binding("Text", quad, "Ph1"));

...为此:

tb.DataBindings.Add(new Binding("Text", listQH, "quad.Ph1"));

我得到,“无法创建字段四边形的子列表

更新 2

我认为这是因为我这样做的方式,绑定(bind)数据是没有意义的:

最初我有一个有 384 个成员的类(class),96 个这样的“四边形”:

int
string
string
string

然后我将其更改为使用具有 4 个成员的类的 96 个实例(上面的那些 - “quad”,即 QH、Ph1、Ph2 和 Ph3)。

因此,尝试绑定(bind)到这些 transient 类实例对我来说并不是很明智 - 我必须保留该类的 96 个实例。

我仍然可能是错的,但我认为这就是此处数据绑定(bind)失败的原因:我将我的代码优雅地遗忘。

最佳答案

根据您对 sharp_net 的评论,数据绑定(bind)适用于属性,而不适用于字段。

改变你的类(class):

public class QHQuad {
public int QH;
public string Ph1;
public string Ph2;
public string Ph3;
}

对此:

public class QHQuad {
public int QH {get; set;}
public string Ph1 {get; set;}
public string Ph2 {get; set;}
public string Ph3 {get; set;}
}

您还应该考虑实现 INotifyPropertyChanged界面。

关于c# - 为什么我的绑定(bind)失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12045046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com