我在 WPF 窗口中有一个 DataGrid。如何在 DataGrid 中以“(999)999-9999”的格式显示电话号码字符串列?
DataGrid 中的电话号码列使用 CellTemplate 中的 TextBlock 和 CellEditingTemplate 中的 TextBox。电话号码存储为不带格式的字符串,例如“9995551234”。
是否可以将电话显示为:(999)555-1234 并将其编辑为(999)555-1234?
尝试使用Text="{Binding PhoneNumber, StringFormat={}{0:(###)###-####}}"
Edit
If your PhoneNumber
属性是字符串类型,那么你能做的并不多StringFormat
来格式化它。
过去,当我想做这样的事情时,我公开了一个名为FormattedPhoneNumber
它返回格式化的电话号码用于显示目的,并且编辑框仅绑定到普通的旧未格式化PhoneNumber
public string FormattedPhoneNumber
{
get
{
if (PhoneNumber == null)
return string.Empty;
switch (PhoneNumber.Length)
{
case 7:
return Regex.Replace(PhoneNumber, @"(\d{3})(\d{4})", "$1-$2");
case 10:
return Regex.Replace(PhoneNumber, @"(\d{3})(\d{3})(\d{4})", "($1) $2-$3");
case 11:
return Regex.Replace(PhoneNumber, @"(\d{1})(\d{3})(\d{3})(\d{4})", "$1-$2-$3-$4");
default:
return PhoneNumber;
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)