将forename和surname字段绑定到标签?

时间:2010-08-05 11:51:49

标签: c# winforms data-binding

我有一个表将ID与客户的姓名和姓氏(两个单独的字段)相关联。我的表单上有一个TextBox,供用户输入客户端ID,我想要在标签上显示名称的实时更新,例如:

TextBox:  1  -->  Label: "Sam Pell"    (user types 1)
TextBox: 12  -->  Label: "Andy Other"  (user types 2)

我有两个问题,真的 - 我是.NET中数据绑定的新手:

  • 如何让TextBox的内容更新Label上显示的名称?
  • 如何在单个Label控件中显示两个单独的字段(连接)?

我目前正在使用Visual Studio数据绑定组件;即BindingSourceTableAdapterDataSet

2 个答案:

答案 0 :(得分:1)

您绑定的类型可能具有readonly属性,该属性具有连接值。

public class Person
{
    string Forename { get; set; }
    string Surname { get; set; }
    string FullName 
    {
        get { return String.Format("{0} {1}", Forename, Surname); }
    }
}

然后将FullName属性绑定到标签控件。

如果您使用的是DataSet,则将自定义列添加到DataTable,表达式为“forename +''+ surname”。 More info here

要更新标签,您必须处理文本框的TextChanged事件:

textBox1.TextChanged += () => label1.Text = (string) dt.Rows.Find(textBox1.Text)["columnName"];

其中列名是新列的名称。

答案 1 :(得分:0)

您是如何从数据库中获取值的?你也许可以修改你的查询来连接像这样的值;

SELECT firstName + " " + surname FROM user

所以你在数据绑定时只需要一个值来对抗。