Click to Rate and Give Feedback

  Switch on low bandwidth view
This page is specific to
Microsoft Visual Studio 2008/.NET Framework 3.5

Other versions are also available for the following:
.NET Framework Class Library
ContentPropertyAttribute Class

Specifies which property of a class to use as the content property when written as XAML.

Namespace:  System.Windows.Markup
Assembly:  WindowsBase (in WindowsBase.dll)
XMLNS for XAML: Not mapped to an xmlns.
Visual Basic (Declaration)
<AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple := False, Inherited := True)> _
Public NotInheritable Class ContentPropertyAttribute _
    Inherits Attribute
Visual Basic (Usage)
Dim instance As ContentPropertyAttribute
C#
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public sealed class ContentPropertyAttribute : Attribute
Visual C++
[AttributeUsageAttribute(AttributeTargets::Class, AllowMultiple = false, Inherited = true)]
public ref class ContentPropertyAttribute sealed : public Attribute
JScript
public final class ContentPropertyAttribute extends Attribute
XAML

This managed class is not typically used in XAML.

If the associated property of a ContentPropertyAttribute is not of type string or object, a type converter will be called at runtime. If a type converter cannot be found at runtime, an exception is thrown.

In order to accept more than a single object element as content, the type of the content property must be a collection type.

An example of a class in Windows Presentation Foundation (WPF) that uses the ContentPropertyAttribute is ContentControl, which the Button class inherits from. The property Content on the ContentControl is the content property set by the ContentPropertyAttribute. If a Button is instantiate in XAML, Content of the Button will be set to the element that is between the start and end button tags.

The following example creates a class named Film which is decorated with the ContentPropertyAttribute. The property named Title is set as the content property.

C#
[ContentProperty("Title")]
public class Film
{
    public Film()
    {
    }

    public string Title
    {
        get { return _title; }
        set { _title = value; }
    }

    private string _title;
}

System..::.Object
  System..::.Attribute
    System.Windows.Markup..::.ContentPropertyAttribute
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
collection type as content      Tom_C ... Aquatique   |   Edit   |   Show History
When implementing a content property of a collection type, the following information can be helpful:

Make sure only the getter of your property is made public.
  • By doing so, you don't have to provide an entire collection as content, instead you can directly add the children to the content.
Example:

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>

Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker