【发布时间】:2010-02-18 19:45:45
【问题描述】:
是否可以将 2 个属性数据绑定到 1 个控件?具体来说,我在考虑电话号码。我有一个对象,其中所有属性都可以直接绑定到 1 个控件,但是对象上有一个 areacode 和 phonenumber 属性。我的用户非常喜欢使用蒙面的文本框来输入电话号码,而不是 2 个单独的。
同样,在表单加载中添加绑定并调用持久对象的 .save() 方法要容易得多,而不是在加载时填充控件并在保存时重新设置它们(也就是说,数据绑定之间存在逻辑断开表单代码中的属性和非绑定的属性)。
所以,我想知道这是否可能。
Edit> 感谢 Yoooder 解决。
我为解决这个问题而编写的代码如下所示:
public class Person : PersistentBase
{
private string areaCode;
private string number;
public string AreaCode
{
get { return this.areaCode; }
set { Persist("AreaCode", this.AreaCode, value); } // pseudocode
}
public string Number
{
get { return this.number; }
set { Persist("Number", this.number, value); }
}
[NonPersistent]
public string PhoneNumber
{
get { return string.Format("{0}{1}", this.AreaCode, this.Number)); }
set
{
PhoneParts parts = SplitIntoParts(value); // uses regex etc.
// Validate full phone number
this.AreaCode = parts.AreaCode;
this.Number = parts.Number;
}
}
}
我像往常一样绑定
textBox1.DataBindings.Add(new Binding("Text", this.person, "PhoneNumber"));
【问题讨论】:
标签: .net winforms data-binding