我有一個的MarkupExtension灌裝集合屬性W/O指定屬性元素
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或以某種方式?
的感謝!
更新:我發現MSDN article,它指出我的例子應該工作沒有「GUI:的DataTemplates」很好,但它並不:( 在互聯網狀態也有許多文章一樣什麼我。做錯了嗎?
不,我不認爲這可能與'ContentProperty' – 2013-03-15 11:22:26
而沒有ContentProperty有可能嗎?我不明白你的評論:( – 2013-03-15 12:24:43