我是WPF和MVVM的新手(我使用的是MvvmLight Toolkit),所以我编码的方式可能不对。
方案如下:
每次切换视图时,我都想执行初始化操作。
所以我创建了一个新的InitViewModelBase
,它继承了ViewModel
Public MustInherit Class InitViewModelBase
Inherits ViewModelBase
...
Public MustOverride Sub Init()
End Class
切换视图时调用此Init
方法
Private _currentViewModel As InitViewModel
Public Property CurrentViewModel() As InitViewModel
Get
Return _currentViewModel
End Get
Set(ByVal value As InitViewModel)
If _currentViewModel IsNot value Then
_currentViewModel = value
_currentViewModel.Init
End If
End Set
End Property
现在我想更新Init
方法
Private _test As String
Public Property Test() As String = "TEST"
Get
Return _test
End Get
Set(ByVal value As String)
_test = value
RaisePropertyChanged("Test")
End Set
End Property
Public Overrides Sub Init()
Test = "UPDATE"
End Sub
<Label Content="{Binding Test}"/>
为什么在我的Init方法中设置新值时,我的标签内容永远不会更新?
如果我在构造函数中设置了一个新值,它就会很好用。