我有一个外壳,里面有两个视图。它们都使用相同的viewmodel,实际上shell也使用相同的viewmodel。我在shell中有两个按钮,用来改变这两个视图的可见性。看起来,即使命令正在启动,值正在更改,并且onpropertychanged配置正确,视图也没有刷新。我已经尝试从父shell和视图本身控制可见性。
以下是我的命令:
Public ReadOnly Property ShowMinimalistSearchResultsView As ICommand
Get
If _cmdShowMinimalistSearchResultsView Is Nothing Then
_cmdShowMinimalistSearchResultsView = New RelayCommand(AddressOf ShowMinimalistSearchResultsViewExecute)
End If
Return _cmdShowMinimalistSearchResultsView
End Get
End Property
Public ReadOnly Property ShowSearchResultsView As ICommand
Get
If _cmdShowSearchResultsView Is Nothing Then
_cmdShowSearchResultsView = New RelayCommand(AddressOf ShowSearchResultsViewExecute)
End If
Return _cmdShowSearchResultsView
End Get
End Property
Private Sub ShowMinimalistSearchResultsViewExecute()
Me.IsMinimalistSearchResultsViewVisible = True
End Sub
Private Sub ShowSearchResultsViewExecute()
Me.IsMinimalistSearchResultsViewVisible = False
End Sub
这是可视布尔值。。。。
Private _isminimalistsearchresultsviewvisible As Boolean
Public Property IsMinimalistSearchResultsViewVisible As Boolean
Get
Return _isminimalistsearchresultsviewvisible
End Get
Set(ByVal value As Boolean)
_isminimalistsearchresultsviewvisible = value
OnPropertyChanged("IsMinimalistSearchResultsViewVisible")
End Set
End Property
<local:MinimalistSearchResultsView Grid.Row="1"
Visibility="{Binding IsMinimalistSearchResultsViewVisible,Converter={StaticResource DebugConverter}}" />
目前,我所要做的是让这一个视图显示或消失时,我发出的命令。我正在使用调试转换器来验证可见性是否正在尝试更改,而实际上并不是。
为什么这样不行?