En général, il y a deux façons de procéder : une classe de conversion ou une propriété dans le modèle de vue qui convertit essentiellement la valeur pour vous.
J'ai tendance à utiliser l'approche immobilière s'il s'agit d'une conversion unique. Si vous voulez la réutiliser, utilisez le convertisseur. Ci-dessous, vous trouverez un exemple de convertisseur :
<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
Une méthode de propriété ViewModel vérifierait simplement la valeur de la propriété booléenne et renverrait une visibilité en fonction de celle-ci. Assurez-vous d'implémenter INotifyPropertyChanged et de l'appeler à la fois sur les propriétés booléennes et de visibilité afin de les mettre à jour correctement.
0 votes
Jetez un coup d'œil à CalcBinding