不同页面上的2个相同的DependencyProperties

时间:2015-01-04 17:33:41

标签: vb.net windows-runtime windows-phone-8.1 dependency-properties

我有一个名为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然后在不同的页面上使用它?

提前致谢。

1 个答案:

答案 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