我对ToString()
命名空间中PhysicalAddress类的默认System.Net.NetworkInformation
输出不满意。输出格式为“AABBCCDDEEFF”,
所以我写了一个扩展方法ToDelimitedString()
,返回格式为“AA-BB-CC-DD-FF”。
到目前为止,这么好。现在我想通过使用数据绑定在我的WPF应用程序中显示它,但这是我停止的道路。我真的不知道如何绑定到对象实例上的默认ToString()
以外的任何东西。
有人请指出我正确的方向,我在理解msdn文档方面遇到了很大困难。
答案 0 :(得分:0)
在这种情况下,最简单的方法可能是写一个转换器:
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()
使其成为字符串...