为什么我不能将标签的标签绑定到 sql 数据?
Why I can't bind label's tag to sql data?
我正在尝试使用 Label 的标签来编辑它的文本 属性。我想将 Label 的 Tag 绑定到数据成员并更改它以定义 Label 的文本。
我像这样创建一个新的绑定:
//
//Create Label For JoinDate Content
//
Label lblJDC = new UniLib_Label();
lblJDC.TextAlign = ContentAlignment.MiddleLeft;
lblJDC.DataBindings.Add(new Binding("Tag", CurrentUserDataBindingSource, "PersonJoinDate"));
if (lblJDC.Tag != null)
{
DateTime joinDate = Convert.ToDateTime(lblJDC.Tag);
lblJDC.Text = new dateFunctions().shamsi(joinDate);
}
lblJDC.Location = new Point(280, 0);
lblJDC.AutoSize = true;
grp.Controls.Add(lblJDC);
但是我得到了 Tag 的空值,当我为 Text 尝试这段代码时它没问题,我得到了正确的值。
有什么问题?
当您将处于可见状态的控件添加到窗体时,数据绑定将起作用。
使用此条件设置数据绑定后,即使控件不可见,它也会继续工作。
下面的代码将按预期工作并显示数据字段的值:
var label = new Label();
label.DataBindings.Add(new Binding("Tag", yourBindingSource, "DataField"));
var panel = new Panel();
panel.Controls.Add(label);
this.Controls.Add(panel);
MessageBox.Show(string.Format("{0}", label.Tag));
如果在将控件添加到窗体之前注释panel.Controls.Add(label);
或注释this.Controls.Add(panel);
或将面板或标签的visible
属性设置为false,将不起作用.
我正在尝试使用 Label 的标签来编辑它的文本 属性。我想将 Label 的 Tag 绑定到数据成员并更改它以定义 Label 的文本。
我像这样创建一个新的绑定:
//
//Create Label For JoinDate Content
//
Label lblJDC = new UniLib_Label();
lblJDC.TextAlign = ContentAlignment.MiddleLeft;
lblJDC.DataBindings.Add(new Binding("Tag", CurrentUserDataBindingSource, "PersonJoinDate"));
if (lblJDC.Tag != null)
{
DateTime joinDate = Convert.ToDateTime(lblJDC.Tag);
lblJDC.Text = new dateFunctions().shamsi(joinDate);
}
lblJDC.Location = new Point(280, 0);
lblJDC.AutoSize = true;
grp.Controls.Add(lblJDC);
但是我得到了 Tag 的空值,当我为 Text 尝试这段代码时它没问题,我得到了正确的值。
有什么问题?
当您将处于可见状态的控件添加到窗体时,数据绑定将起作用。
使用此条件设置数据绑定后,即使控件不可见,它也会继续工作。
下面的代码将按预期工作并显示数据字段的值:
var label = new Label();
label.DataBindings.Add(new Binding("Tag", yourBindingSource, "DataField"));
var panel = new Panel();
panel.Controls.Add(label);
this.Controls.Add(panel);
MessageBox.Show(string.Format("{0}", label.Tag));
如果在将控件添加到窗体之前注释panel.Controls.Add(label);
或注释this.Controls.Add(panel);
或将面板或标签的visible
属性设置为false,将不起作用.