[使用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
答案 0 :(得分:3)
让我的评论成为答案。
使用singleton对象而不是所有静态/共享属性。 Here's an example in C#(VB.NET并不太远),只需让单例类继承自DependencyObject。