Можно ли объявить псевдоним типа в XAML? - PullRequest
4 голосов
/ 05 сентября 2011

Возможно ли в XAML объявить псевдоним для типа?

Позвольте мне объяснить на примере.Учитывая эти объявления типов ...

namespace Somewhere
{
    public class Blob { … }
    public class BlobCollection : List<Blob> {}  // "type alias" in C#
}

... следующий (сокращенный) XAML должен быть действительным:

<BlobCollection xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns="clr-namespace:Somewhere;…">
  <Blob … />
  <Blob … />
</BlobCollection>

Я уже знаю, что могу определить что-то вроде псевдонимов типов черезнаследование (см. комментарий к коду выше).Предположим, что хотел сделать то же самое в XAML, как бы мне пришлось изменить XAML, чтобы иметь возможность ссылаться на BlobCollection как Blobs?

<Blobs xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns="clr-namespace:Somewhere;…">
  <Blob … />
  <Blob … />
</Blobs>

1 Ответ

2 голосов
/ 05 сентября 2011

Я не уверен, что вы можете использовать псевдонимы непосредственно в XAML, но проще всего использовать псевдонимы в XAML, просто создав подклассы коллекции в коде (или, черт возьми, переименовать сам класс коллекции, если это не будет неблагоприятновлияет на остальную часть вашего кода):

public class Blobs : BlobCollection {}

Это кажется ненужным, но это все, о чем я могу думать прямо сейчас.

...