方法 : 添付プロパティを登録する

この例では、添付プロパティを登録する方法、および Extensible Application Markup Language (XAML) とコードの両方でプロパティを使用できるようにパブリック アクセサーを提供する方法を示します。 添付プロパティは、Extensible Application Markup Language (XAML) で定義されている構文の概念です。 WPF の型のほとんどの添付プロパティは、依存関係プロパティとしても実装されます。 任意の DependencyObject 型で依存関係プロパティを使用できます。

使用例

次の例では、RegisterAttached メソッドを使用して添付プロパティを依存関係プロパティとして登録する方法を示します。 プロバイダー クラスは、プロパティの既定のメタデータを提供するオプションを持っています。この既定値は、別のクラスに対してプロパティが使用されるときに適用されます (そのクラスがメタデータをオーバーライドしない場合)。 この例では、IsBubbleSource プロパティの既定値は false に設定されています。

添付プロパティ (依存関係プロパティとして登録されていなくても) のプロバイダー クラスは、Set[AttachedPropertyName] および Get[AttachedPropertyName] の名前付け規則に従う静的な get および set アクセサーを提供する必要があります。これらのアクセサーは、機能している XAML リーダーがプロパティを XAML の属性として認識し、適切な型を解決できるために必要です。 

Public Shared ReadOnly IsBubbleSourceProperty As DependencyProperty = DependencyProperty.RegisterAttached("IsBubbleSource", GetType(Boolean), GetType(AquariumObject), New FrameworkPropertyMetadata(False, FrameworkPropertyMetadataOptions.AffectsRender))
Public Shared Sub SetIsBubbleSource(ByVal element As UIElement, ByVal value As Boolean)
    element.SetValue(IsBubbleSourceProperty, value)
End Sub
Public Shared Function GetIsBubbleSource(ByVal element As UIElement) As Boolean
    Return CType(element.GetValue(IsBubbleSourceProperty), Boolean)
End Function
public static readonly DependencyProperty IsBubbleSourceProperty = DependencyProperty.RegisterAttached(
  "IsBubbleSource",
  typeof(Boolean),
  typeof(AquariumObject),
  new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)
);
public static void SetIsBubbleSource(UIElement element, Boolean value)
{
  element.SetValue(IsBubbleSourceProperty, value);
}
public static Boolean GetIsBubbleSource(UIElement element)
{
  return (Boolean)element.GetValue(IsBubbleSourceProperty);
}

参照

参照

DependencyProperty

概念

依存関係プロパティの概要

カスタム依存関係プロパティ

その他の技術情報

プロパティに関する「方法」トピック