Они - те, я могу задуматься о. Существуют еще больше на Википедию приблизительно структуры данных
К сожалению, то, что вы хотите, не вполне возможно.
Обновление: До .NET 4.0 (то есть когда этот ответ был изначально написан), Поддержка XAML для использования универсальных типов была очень ограниченной ; например, дженерики работали только с корневым элементом. В .NET 4.0 были сняты некоторые ограничения.
В .NET 4.0 вы можете создать полностью специализированный универсальный тип. Таким образом, хотя сам XAML все еще не имеет понятия универсальных типов, он может относиться к специализациям универсальных типов. (По аналогии, XAML не может выражать понятие List <>
, но может выражать понятие List
). Для получения полной информации см. страницу MSDN «Generics in XAML» .
Вы можете создавать экземпляры специализированных универсальных типов с помощью x: TypeArguments
Директива . Например, с x
, привязанным к пространству имен XAML, sys
с пространством имен System
и scg
с System.Collections. Generic
и ваше собственное пространство имен MyWindows, привязанное к my
, тогда:
создаст MyWindows < строка>
экземпляр.
создаст List >
Таким образом, использование универсальных типов больше не является проблемой в XAML!
Увы, вы хотите определить универсальный тип в XAML. Это невозможно. Здесь есть два обходных пути. Во-первых (и, основываясь на ваших комментариях по другому вопросу, я думаю, это то, что вы хотите), вы можете просто передать тип как простой параметр. Если вы сделаете это, вы потеряете все функции безопасности времени компиляции, которые предоставляют универсальные шаблоны, но достаточно часто они не актуальны. Во-вторых, вы можете определить обычный неуниверсальный класс с выделенным кодом в XAML и просто использовать универсальный базовый класс для повторного использования кода. Таким образом вы получите хотя бы некоторую надлежащую безопасность и повторное использование дженериков.