У меня есть MarkupExtensionЗаполнение сбор имущества от XAML без указания свойства элемента
public class DataTemplates : Dictionary<object, DataTemplate>{}
[MarkupExtensionReturnType(typeof(DataTemplateSelector))]
[ContentProperty("DataTemplatesDictionary")]
public class TemplateSelectorExtension : MarkupExtension
{
//...
public DataTemplates DataTemplatesDictionary { get; set; }
public override object ProvideValue(IServiceProvider serviceProvider)
{
if (DataTemplatesDictionary == null) throw new ArgumentException();
// some logic
}
}
Используйте его в XAML
<TabControl.ItemTemplateSelector>
<GUI:TemplateSelector>
<GUI:DataTemplates> <!-- How do I avoid this element???-->
<DataTemplate ....>
</DataTemplate>
<DataTemplate ....>
</DataTemplate>
</GUI:DataTemplates>
</GUI:TemplateSelector>
</TabControl.ItemTemplateSelector>
Возникает вопрос: можно ли избежать «GUI: DataTemplates» элемент, пишущий какой-то TypeConverter или как-нибудь еще?
спасибо!
UPDATE: Я нашел MSDN article, он утверждает, что мой пример должен работать без «GUI: DataTemplates» хорошо, но это не :( также много статей в состоянии Интернет то же самое, что делать я. Неправильно?
Нет, я не думаю, что это возможно с помощью 'ContentProperty' –
И без ContentProperty это возможно? Я не понимаю ваш комментарий :( –