在这种情况下,最简单的方法可能是编写一个转换器:
public class PhysicalAdressConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var address = value as PhysicalAddress;
if (address != null)
return address.ToDelimitedString();
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
并在绑定中指定此转换器PhysicalAddress
如果您使用的是 MVVM 模式,您还可以创建一个执行格式化并绑定到该属性的属性:
public string FormattedPhysicalAddress
{
get { return this.PhysicalAddress.ToDelimitedString(); }
}
顺便说一句,绑定不会ToString()
像您假设的那样绑定到方法。它绑定到值本身,但如果目标类型是string
,那么它调用ToString()
使其成为字符串......