PropertyMetadata クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
依存関係プロパティの動作の側面 (登録された条件を含む) を定義します。 依存関係プロパティの使用方法 PropertyMetadata
の詳細については、「 カスタム依存関係プロパティ」を参照してください。
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PropertyMetadata
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class PropertyMetadata
Public Class PropertyMetadata
- 継承
- 属性
例
この例では、PropertyMetadata(Object) コンストラクターを呼び出します。このコンストラクターは、DependencyProperty の既定値を報告する を作成PropertyMetadata
します。
PropertyMetadata
RegisterAttached が呼び出されると、 は添付プロパティの登録に使用されます。
public abstract class AquariumServices : DependencyObject
{
public enum Buoyancy { Floats, Sinks, Drifts }
public static readonly DependencyProperty BuoyancyProperty = DependencyProperty.RegisterAttached(
"Buoyancy",
typeof(Buoyancy),
typeof(AquariumServices),
new PropertyMetadata(Buoyancy.Floats)
);
public static void SetBuoyancy(DependencyObject element, Buoyancy value)
{
element.SetValue(BuoyancyProperty, value);
}
public static Buoyancy GetBuoyancy(DependencyObject element)
{
return (Buoyancy)element.GetValue(BuoyancyProperty);
}
}
注釈
インスタンスの PropertyMetadata
定義は、カスタム依存関係プロパティを定義するシナリオの一部です。 詳細と例については、「 カスタム依存関係プロパティ」を参照してください。
値は PropertyMetadata
、依存関係プロパティの動作の 2 つの側面を表します。
- 所有者の型が値を明示的に初期化しない限り、または値がユーザー コードまたはその他のメカニズムによって設定されていない限り、プロパティの値として使用される既定値を提供します。
- 依存関係プロパティ システムが依存関係プロパティが変更されたことを検出した場合に呼び出されるコールバックを参照します。
通常、依存関係プロパティは、これらの動作の一方または両方が必要な場合にのみ値を必要
PropertyMetadata
とします。 それ以外のnull
場合、依存関係プロパティが依存関係プロパティ システムにpropertyMetadata
登録されている場合は、 の値を パラメーターに渡すことができます。 詳細については、「 DependencyProperty.Register」を参照してください。
に PropertyMetadata
プロパティ変更コールバック参照が含まれている場合、そのメソッドは、それが適用される DependencyProperty 識別子 PropertyMetadata
を公開するクラスの静的メソッドである必要があります。 このメソッドの作成方法については、「 カスタム依存関係プロパティ 」および PropertyChangedCallback デリゲートのリファレンス トピックを参照してください。
注意
作成されたインスタンスには、 PropertyMetadata
コールバックの検索やコールバックのメソッド名の決定に使用できるプロパティがありません。 この情報は依存関係プロパティの実装の詳細と見なされ、依存関係プロパティ システム自体だけがそのメソッドを呼び出すことができる必要があります。
PropertyMetadata 値のインスタンス化
インスタンスをインスタンス化 PropertyMetadata
できるメソッドには、コンストラクターと静的 PropertyMetadata.Create メソッドの 2 つがあります。 これらの各メソッドには、複数のシグネチャがあります。 コンストラクターを使用する方が一般的です。 ただし、依存関係プロパティの既定値メカニズムをスレッド セーフにする場合は、 PropertyMetadata.Create を使用する必要があります。 詳細については、「 カスタム依存関係 プロパティ」トピックの「カスタム依存関係プロパティのプロパティ メタデータ」セクションを参照してください。
コンストラクター
PropertyMetadata(Object) |
プロパティの既定値を使用して、 PropertyMetadata クラスの新しいインスタンスを初期化します。 |
PropertyMetadata(Object, PropertyChangedCallback) |
プロパティの既定値とコールバック参照を使用して、 PropertyMetadata クラスの新しいインスタンスを初期化します。 |
プロパティ
CreateDefaultValueCallback |
既定のプロパティ値を提供するコールバック メソッドへの参照を取得します。 |
DefaultValue |
依存関係プロパティの既定値を取得します。 |
メソッド
Create(CreateDefaultValueCallback) |
PropertyMetadata 値を作成し、依存関係プロパティの既定値を確立するコールバックを指定します。 |
Create(CreateDefaultValueCallback, PropertyChangedCallback) |
PropertyMetadata 値を作成し、依存関係プロパティの既定値を確立するコールバックと、プロパティ変更コールバックを指定します。 |
Create(Object) |
依存関係プロパティの固定既定値を指定して、 PropertyMetadata 値を作成します。 |
Create(Object, PropertyChangedCallback) |
PropertyMetadata 値を作成し、依存関係プロパティの固定既定値とプロパティ変更コールバックを指定します。 |