PropertyMetadata クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
依存関係プロパティの動作の側面 (登録された条件を含む) を定義します。 依存関係プロパティに
/// [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
が作成されます。
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
値を必要とします。 それ以外の場合は、依存関係プロパティを依存関係プロパティ システムに登録するときに、propertyMetadata
パラメーターに対してnull
の値を渡すことができます。 詳細については、「DependencyProperty.Register」を参照してください。
PropertyMetadata
にプロパティ変更コールバック参照が含まれている場合、そのメソッドは、その PropertyMetadata
が適用される DependencyProperty 識別子を公開するクラスの静的メソッドである必要があります。 このメソッドの記述方法については、カスタム依存関係プロパティ と、PropertyChangedCallback デリゲートのリファレンス トピックで説明されています。
手記
作成されると、PropertyMetadata
インスタンスには、コールバックの検索やコールバックのメソッド名の決定に使用できるプロパティはありません。 この情報は依存関係プロパティの実装の詳細と見なされ、依存関係プロパティ システム自体だけがそのメソッドを呼び出すことができる必要があります。
PropertyMetadata 値のインスタンス化
コンストラクター
PropertyMetadata(Object, PropertyChangedCallback) |
プロパティの既定値とコールバック参照を使用して、PropertyMetadata クラスの新しいインスタンスを初期化します。 |
PropertyMetadata(Object) |
プロパティの既定値を使用して、PropertyMetadata クラスの新しいインスタンスを初期化します。 |
プロパティ
CreateDefaultValueCallback |
既定のプロパティ値を提供するコールバック メソッドへの参照を取得します。 |
DefaultValue |
依存関係プロパティの既定値を取得します。 |
メソッド
Create(CreateDefaultValueCallback, PropertyChangedCallback) |
依存関係プロパティの既定値を確立するコールバックとプロパティ変更コールバックを指定して、PropertyMetadata 値を作成します。 |
Create(CreateDefaultValueCallback) |
依存関係プロパティの既定値を確立するコールバックを指定して、PropertyMetadata 値を作成します。 |
Create(Object, PropertyChangedCallback) |
依存関係プロパティの固定既定値とプロパティ変更コールバックを指定して、PropertyMetadata 値を作成します。 |
Create(Object) |
依存関係プロパティの固定既定値を指定して、PropertyMetadata 値を作成します。 |
適用対象
こちらもご覧ください
- Register(String, TypeName, TypeName, PropertyMetadata)
- PropertyChangedCallback
- カスタム依存関係プロパティ を
する