1

datatemplate から派生した型のカスタム プロパティでカスタム マークアップ拡張機能を使用する方法があるかどうか疑問に思っています。

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>

DataType プロパティにCommonShapemarkupextension を設定すると、すべてが機能します。x:TypeGeometry プロパティに markupextensionを配置すると、すべてが機能します。

しかし、カスタム プロパティにカスタム マークアップ拡張機能を追加すると、エラーが発生します。

The property 'Geometry' cannot be set as a property element on template.
Only Triggers and Storyboards are allowed as property elements.

これに対する回避策はありますか?

アレックス

編集: 考えられる回避策の 1 つは、マークアップ拡張機能の値をリソース ディクショナリに入れ、Geometry プロパティで StaticResource を使用することです。ただし、xaml を使用してこれが可能かどうかはわかりません。

4

0 に答える 0