x: Тип и массивы - как? - PullRequest
       18

x: Тип и массивы - как?

0 голосов
/ 17 июля 2010

Короче говоря, мне нужно сделать это:

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

Другими словами, мне нужно сделать это:

foo.ExpressionType=typeof(byte[]);

Ват делать?


Обновление: ошибка в области дизайна 2010 года.Работает нормально во время выполнения.

1 Ответ

1 голос
/ 17 июля 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: Тип sys: Byte []}, кажется, работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...