我正在尝试将一些数据绑定(bind)到 WPF ListView 。我的数据类型的属性之一是 byte[]
类型,我希望它显示为逗号分隔的字符串,例如 { 12, 54 }
code> 将显示为 12, 54
而不是 Byte[] Array
。我想我想制作一个自定义 DataTemplate
但我不确定。那是最好的方法吗?如果是这样,我该怎么做?如果不是,最好的方法是什么?
编辑:我只想将它用于一列 - 其他属性显示正常。
最佳答案
我建议使用 ValueConverter:
[ValueConversion(typeof(byte []), typeof(string))]
public class ByteArrayConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
byte [] bytes = (byte [])value;
StringBuilder sb = new StringBuilder(100);
for (int x = 0; x<bytes.Length; x++)
{
sb.Append(bytes[x].ToString()).Append(" ");
}
return sb.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
#endregion
}
在您的 xaml 中,您可以像这样将它添加到您的绑定(bind)中:
<Window.Resources>
<local:ByteArrayConverter x:Key="byteArrayConverter"/>
</Window.Resources>
...
"{Binding ByteArrayProperty, Converter={StaticResource byteArrayConverter}}"
关于c# - 如何获取 WPF ListView 以将字节数组格式化为逗号分隔的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1194899/