我用this "guide", 但不同的是,我不想限制對象我附加屬性,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和谷歌),並沒有找到任何解決辦法,但據我瞭解我聯繫的文章, attachedProperties不僅限於UIElements嗎? 那麼......我該怎麼辦?
ps:要完成我的答案我必須爲一些對象獲取一個名稱我從一個DLL解析(並顯示在TreeView中),所以,如果我沒有Name字段/屬性,我會添加附件 !
依賴屬性只能由DependencyObjects使用,並且QbName應該從那裏繼承。但是您可以將附加屬性附加到任何對象。 – Falanwe 2011-12-19 10:44:22
我們說的是同樣的事情。您可以將依賴項屬性附加到從DependencyObject派生的任何內容,而不是從(System。)對象派生。 – Strillo 2011-12-19 10:50:53
這是從我鏈接的文章:「如果您的類正在嚴格定義附加屬性用於其他類型,然後該類不必從DependencyObject派生。但您需要從DependencyObject派生如果您遵循總體WPF擁有附屬財產的模型也是一種依賴財產。「 – 2011-12-19 11:09:11