Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WPF, Silverlight Новый топик    Ответить
 DataTemplate.DataType  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 4038
<DataTemplate x:Key="ResourceKey" DataType="{x:Type IType}">
</DataTemplate>

Может, кто знает, если ли такой MarkupExtension, который бы возвращал тип, унаследованный от нескольких интерфейсов.
Что запись была примерно следующего типа:
<DataTemplate x:Key="ResourceKey" DataType="{x:Types IType1, IType2, IType3}">
</DataTemplate>

вообще это возможно технически?
может как то, черед динамические типы?
По сути само поле, чистая формальность, оно не влияет на Binding, так как тот работает через рефлексию, ни где и ни чего не приводится к типу указанному в шаблоне. Но это помогает в редакторе XAML файлов, так как при связывании я вижу все доступные поля модели и т.д.
Интерфейсы довольно хорошо решают проблему с Generic классами, которые мягко говоря не очень хорошо поддерживаются.
28 июн 16, 12:43    [19344677]     Ответить | Цитировать Сообщить модератору
 Re: DataTemplate.DataType  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21988
Ну а просто сделать фейковый интерфейс, наследующий этим трём?
28 июн 16, 12:51    [19344736]     Ответить | Цитировать Сообщить модератору
 Re: DataTemplate.DataType  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 4038
сделал я такую штуку, а IntelliSenseу походу срать, он просто ищет первое {x:Type и использует его О_о}
28 июн 16, 14:04    [19345312]     Ответить | Цитировать Сообщить модератору
 Re: DataTemplate.DataType  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21988
Не догнал. Я имею ввиду следующее:
public interface IType123 : IType1, IType2, IType3 { }
<DataTemplate x:Key="ResourceKey" DataType="{x:Type IType123}">
</DataTemplate>
и что тут не нравится интеллисенсу?
28 июн 16, 14:11    [19345364]     Ответить | Цитировать Сообщить модератору
 Re: DataTemplate.DataType  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 4038
Shocker.Pro
Не догнал. Я имею ввиду следующее:
public interface IType123 : IType1, IType2, IType3 { }
<DataTemplate x:Key="ResourceKey" DataType="{x:Type IType123}">
</DataTemplate>
и что тут не нравится интеллисенсу?

это не ленивый метод :) хотелось вот так: {x:Types {x:Type} {x:Type}}
я попробовал сгенерировать тип в который добавлял все открытые поля из типов по списку и возвращать в качестве значения.
MarkupExtension работает и выдает, то, что ожидается, но IntelliSense такое не переваривает :(
28 июн 16, 14:19    [19345440]     Ответить | Цитировать Сообщить модератору
Все форумы / WPF, Silverlight Ответить