在我的主项目中,我有ObservableCollection<DataValue>
,其中DataValue
是来自第三方库的类型,它看起来像这样(简化):
public class DataValue : IFormattable, ICloneable
{
private object m_value;
private TypeInfo m_typeInfo;
public object Value
{
get { return this.m_value; }
}
public TypeInfo TypeInfo
{
get
{
if (this.m_typeInfo == (TypeInfo) null)
return TypeInfo.Unknown;
else
return this.m_typeInfo;
}
}
}
在我的解决方案中的另一个项目中,我有一个view和viewmodel来显示此集合中的数据,并且在绑定到ListBox
时它可以正常工作(如果DataValue.Value
它正确显示值}是integer
,byte[]
或其他什么),所以它会以某种方式自动计算出实际类型?
我想在我创建的自定义控件中使用相同的行为,如果值是byte[]
的集合,它应该处理数据。
我怎样才能做到这一点?我尝试使用ValueConverter和一些反射和转换,但似乎没有必要,因为本机控件似乎自动计算出来。