我有一个名为H1Property的DependencyProperty声明如下:
Public Shared ReadOnly H1Property As DependencyProperty = DependencyProperty.Register("H1", GetType(String), GetType(Button), Nothing)
Public Property H1() As String
Get
Return DirectCast(GetValue(H1Property), String)
End Get
Set(ByVal value As String)
SetValue(H1Property, value)
End Set
End Property
在第1页,我使用它为具有自定义模板的按钮分配值(例如template1,需要在不同的页面上使用相同的模板,因此它存储在App.xaml中)。我还在项目(page2)中有另一个页面,在代码隐藏中使用相同的H1Property。当我在page1上动态添加带有template1的按钮时,它工作正常,但是当我导航到page2,然后返回到page1并再次生成控件时,新按钮中的值为空。没有错误,只是空字段。
有什么问题?有没有办法只声明一次DependencyProperty然后在不同的页面上使用它?
提前致谢。
答案 0 :(得分:0)
您可以拥有一个存储公共状态的模块,并在页面中引用它
Public Module CommonState
Public ReadOnly H1Property As DependencyProperty = _
DependencyProperty.Register("H1", GetType(String), GetType(Button), Nothing)
End Module
两页
Public Property H1() As String
Get
Return DirectCast(GetValue(CommonState.H1Property), String)
End Get
Set(ByVal value As String)
SetValue(CommonState.H1Property, value)
End Set
End Property
如果页面本身需要H1Property
,您可以将其包装到属性
Public Shared ReadOnly Property H1Property() As DependencyProperty
Get
Return CommonState.H1Property
End Get
End Property