Geralmente, existem duas maneiras de fazer isso, uma classe de conversor ou uma propriedade no Viewmodel que basicamente converte o valor para você.
Costumo usar a abordagem de propriedade se for uma conversão única. Se você deseja reutilizá-lo, use o conversor. Abaixo, encontre um exemplo do conversor:
<ValueConversion(GetType(Boolean), GetType(Visibility))> _
Public Class BoolToVisibilityConverter
Implements IValueConverter
Public Function Convert(ByVal value As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert
If value IsNot Nothing Then
If value = True Then
Return Visibility.Visible
Else
Return Visibility.Collapsed
End If
Else
Return Visibility.Collapsed
End If
End Function
Public Function ConvertBack(ByVal value As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.ConvertBack
Throw New NotImplementedException
End Function
End Class
Um método de propriedade ViewModel apenas verifica o valor da propriedade booleana e retorna uma visibilidade com base nisso. Certifique-se de implementar INotifyPropertyChanged e chame-o nas propriedades booleana e de visibilidade para atualizar corretamente.