私はthis "guide", を使用しましたが、違いは、プロパティを添付しているオブジェクトImを制限したくないということです。UIElement
最も一般的なアイテムにプロパティを追加したいと思います。コード:オブジェクトにAttachedPropertyがありますか?
public static readonly DependencyProperty QbNameProperty = DependencyProperty.RegisterAttached(
"QbName",
typeof(string),
typeof(QbName),
new PropertyMetadata("")
);
public static void SetQbName(object obj, string name)
{
obj.SetValue(QbNameProperty, name);
}
public static Boolean GetQbName(object obj)
{
return (Boolean)obj.GetValue(QbNameProperty);
事がSetValueをおよびGetValueメソッドは、オブジェクトのために存在していないということです...私は(SOとグーグル)どこにでも見てみましたし、任意の解決策を見つけるが、私の知る限り、私はリンク先の記事を理解していませんでし、添付プロパティはUIElementsに限定されません。 ...どうすればいいですか?
ps:私の答えを完成するいくつかのオブジェクトの名前を取得する必要があります。DLLから解析して(ツリービューで表示します)、名前フィールド/プロパティがない場合は追加しますアタッチメント !
依存プロパティはDependencyObjectsでのみ使用でき、QbNameはそれを継承する必要があります。しかし、任意のオブジェクトにアタッチされたプロパティをアタッチすることができます。 – Falanwe
同じことを言っています。 DependencyObjectは、(System。)Objectではなく、DependencyObjectから派生するものにアタッチすることができます。 – Strillo
これは私がリンクしている記事からです: "あなたのクラスが他の型で使用するために厳密に添付プロパティを定義している場合、そのクラスはDependencyObjectから派生する必要はありません。しかし、WPF全体に従うならDependencyObjectから派生させる必要がありますあなたのアタッチされたプロパティを持つモデルも依存関係のプロパティになります。 " –