我想知道是否有一种方法可以在从数据模板派生的类型的自定义属性上使用自定义标记扩展?
我需要在我的 DataTemplates 中提供一些额外的信息:
public class MyDataTemplate : DataTemplate
{
public string GroupName { get; set; }
public string TemplateKey { get; set; }
public object Geometry { get; set; }
}
<MyDataTemplate x:Key="Foo" DataType="{x:Type system:String}" GroupName="Group1"
Geometry="{telerik:CommonShape ShapeType=RectangleShape}">
...
</MyDataTemplate>
当我将CommonShape
标记扩展名放在 DataType 属性上时,一切正常。当我将x:Type
markupextension 放在 Geometry 属性上时,一切正常。
但是,如果我将自定义标记扩展名放在自定义属性上,我会收到错误消息
The property 'Geometry' cannot be set as a property element on template.
Only Triggers and Storyboards are allowed as property elements.
有什么解决方法吗?
亚历克斯
编辑:一种可能的解决方法是将标记扩展的值放入资源字典并在 Geometry 属性上使用 StaticResource - 但是,我不确定这是否可以使用 xaml?