背景として、添付プロパティを登録する方法は次のとおりです
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);
}
Set/Get コンストラクトではなく、標準のプロパティ形式を使用することもできます。これは、WPF が強力な規約を定めている分野の 1 つです。AttachedProperty
(または任意の)には 3 つの部分がありますDependencyProperty
。1 つ目は、プロパティを登録するDependencyProperty.RegisterAttached
ことです。戻り値は、[プロパティ名]Property という名前の public static 変数に設定する必要があります。2 つ目は、プロパティを登録するときの最初の引数は「[プロパティ名]」にする必要があることです。3 つ目は、Get[プロパティ名]、Set[プロパティ名] という名前で、外の世界と対話するために使用する Get/Set メソッドです。
規則に従って設定すると、WPF は 2 つが接続されていることを認識し、期待どおりにプロパティを使用できるようにする必要があります。