Table of Contents

Class PropertyDescriptor

Namespace
ReportWright.Design.Properties
Assembly
ReportWright.Design.dll

One editable property: where it lives under the item, how it is edited, its allowed values, whether an expression may stand in for a literal, and the schema versions that know it. This is the hand-maintained metadata the public RdlSchema lacks (register row U-A1); a test checks every path against the schema.

public sealed class PropertyDescriptor
Inheritance
PropertyDescriptor
Inherited Members

Constructors

PropertyDescriptor(string, string, PropertyKind, bool, IReadOnlyList<string>?, ReportSchemaVersion, ReportSchemaVersion?, string?)

Initializes the descriptor.

Properties

AllowsExpression

Gets whether an expression may replace the literal (A.7.4).

Description

Gets the help text.

EnumValues

Gets the allowed values of an enumeration.

IsAttribute

Gets whether this is the name attribute.

Kind

Gets how it is edited.

Label

Gets the label.

MaximumVersion

Gets the newest version that knows it, or null.

MinimumVersion

Gets the oldest version that knows the property.

Path

Gets the path under the item.

Segments

Gets the path's segments, element names only (a {Child=Value} predicate stripped).

Methods

ExistsIn(ReportSchemaVersion)

Whether a document of a schema version knows this property. Versions order newest first in the enumeration, so the comparison is reversed.

Parse(string, out string?, out string?)

Splits a path segment into its element name and an optional {Child=Value} predicate, which selects the child whose Child element has that value (CustomProperty{Name=Symbology}).

Read(DesignerDocument, RdlElement)

Reads the property's current text, or null when absent.

Resolve(DesignerDocument, RdlElement, bool, out string)

The element that holds this property's value, created on demand along the path when create is set.