方法 : 添付プロパティを登録する
更新 : 2007 年 11 月
この例では、添付プロパティを登録する方法、および Extensible Application Markup Language (XAML) とコードの両方でプロパティを使用できるようにパブリック アクセサを提供する方法を示します。添付プロパティは、Extensible Application Markup Language (XAML) で定義されている構文の概念です。WPF の型のほとんどの添付プロパティは、依存関係プロパティとしても実装されます。任意の DependencyObject 型で依存関係プロパティを使用できます。
使用例
次の例では、RegisterAttached メソッドを使用して添付プロパティを依存関係プロパティとして登録する方法を示します。プロバイダ クラスは、プロパティの既定のメタデータを提供するオプションを持っています。この既定値は、別のクラスに対してプロパティが使用されるときに適用されます (そのクラスがメタデータをオーバーライドしない場合)。この例では、IsBubbleSource プロパティの既定値は false に設定されています。
添付プロパティ (依存関係プロパティとして登録されていなくても) のプロバイダ クラスは、Set[AttachedPropertyName] および Get[AttachedPropertyName] の名前付け規則に従う静的な get および set アクセサを提供する必要があります。これらのアクセサは、機能している XAML リーダーがプロパティを XAML の属性として認識し、適切な型を解決できるために必要です。
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);
}