是否可以拥有共享/静态依赖属性?

时间:2010-05-25 01:45:20

标签: .net wpf vb.net dependencies

[使用VB.NET,但我可以在响应中轻松阅读C#代码]

我有一个名为QuestionClipboard的类,包含所有共享方法/属性。

如果我的'剪贴板'上有一个Object,我之前有一个QuesitonClipboard.doesClipboardHaveContent函数返回true / false。

我更喜欢实现依赖属性,因此我可以允许此true / false值参与数据绑定。

“GetValue(dp as DependencyProperty)”方法需要一个对象实例,这意味着我的属性不能被共享!

以下是我完美世界中代码的样子......当然,属性声明之前的“共享”一词会使这段代码变得无用。

Private Shared clipboardHasContentPropertyKey As DependencyPropertyKey = DependencyProperty.RegisterReadOnly("clipboardHasContent", GetType(Boolean), GetType(QuestionClipboard), _
                                                                        New PropertyMetadata(False, Nothing, New CoerceValueCallback(AddressOf coerceClipboardHasContent)))
Private Shared clipboardHasContentProperty As DependencyProperty = clipboardHasContentPropertyKey.DependencyProperty

Public SHARED Property clipboardHasContent As Boolean
    Get
        Return GetValue(clipboardHasContentProperty)
    End Get
    Set(ByVal value As Boolean)
        SetValue(value)
    End Set
End Property

1 个答案:

答案 0 :(得分:3)

让我的评论成为答案。

使用singleton对象而不是所有静态/共享属性。 Here's an example in C#(VB.NET并不太远),只需让单例类继承自DependencyObject。