长话短说,我需要这样做:
ExpressionType="{x:Type sys:Byte[]}"
换句话说,我需要这样做:
foo.ExpressionType=typeof(byte[]);
做什么?
更新:它是 2010 设计界面中的一个错误。它在运行时工作正常。
长话短说,我需要这样做:
ExpressionType="{x:Type sys:Byte[]}"
换句话说,我需要这样做:
foo.ExpressionType=typeof(byte[]);
做什么?
更新:它是 2010 设计界面中的一个错误。它在运行时工作正常。
如果在框架中没有办法做到这一点,那么您可以编写自己的标记扩展:
public class ArrayTypeExtension
: MarkupExtension
{
public ArrayTypeExtension() {}
public ArrayTypeExtension(Type type)
{
this.Type = type;
}
public Type Type { get; set; }
public override object ProvideValue(IServiceProvider serviceProvider)
{
return Type == null ? null : Type.MakeArrayType();
}
}
用法:
ExpressionType="{local:ArrayType sys:Byte}"
实际上,只是做 {x:Type sys:Byte[]} 似乎工作。