0

簡単に言えば、私はこれを行う必要があります:

ExpressionType="{x:Type sys:Byte[]}"

言い換えれば、私はこれを行う必要があります:

foo.ExpressionType=typeof(byte[]);

ワットは?


更新:2010年の設計面のバグです。実行時に正常に動作します。

4

1 に答える 1

1

フレームワークでそれを行う方法がない場合は、独自のマークアップ拡張機能を作成できます。

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[]}を実行するだけで機能するようです。

于 2010-07-16T20:33:24.843 に答える