17

私は UserControl を作成していますが、デフォルトのコンテンツ プロパティとして機能させたいプロパティを装飾するために使用する属性の名前を思い出せません。

具体的な例を挙げると、次のようなプロパティ構文を使用して設定できる「タイトル」というプロパティがあるとします-

<local:myControl Title="the title"/>

しかし、コントロールの消費者は、次のような要素構文を使用したい場合があります -

<local:myControl> the Title </local:myControl>

このサポートを有効にするために Title プロパティに追加する必要がある属性があることは知っていますが、それが何であるかを忘れてしまい、どこにも見つかりません。

誰か私の記憶をリフレッシュしてくれませんか? また、ItemsControl から継承する CustomControls に作用する同様の属性を探しています。

4

2 に答える 2

19

ContentPropertyAttribute

于 2009-03-19T10:21:46.613 に答える
7

また、MSDN の content プロパティとしてコレクションをサポートするためのコードも見つけました。 TOM_Cはこれに感謝します。

[ContentProperty("SomeObjects")]
public class SomeContainer
{
    private List<SomeObject> _someObjects;
    public List<SomeObject> SomeObjects
    {
        get
        {
            if (null == _someObjects)
                _someObjects = new List<SomeObject>();
            return _someObjects;
        }
    }
}

XAML:

<SomeContainer>
    <SomeObject/>
    <SomeObject/>
    <SomeObject/>
</SomeContainer>
于 2009-03-19T10:33:29.457 に答える