Elément conditionnel dans xaml en fonction du contenu de la liaison
Est-il possible d'afficher cette TextBlock, seulement si le Address.Length > 0
? J'aimerais le faire directement dans le xaml, je sais que je pourrais mettre toutes mes commandes par programme
<TextBlock Text="{Binding Path=Address}" />
source d'informationauteur Thomas Joulin | 2010-12-15
Vous devez vous connecter pour publier un commentaire.
Fondamentalement, vous allez avoir besoin d'écrire un
IValueConverter
de sorte que vous pouvez lier leVisibility
propriété de votreTextBox
soit leAddress
champ, ou un nouveau champ que vous créez.Si vous liez à la
Address
champ, voici comment la liaison pourrait ressembler à::Et puis
StringLengthVisiblityConverter
pourrait ressembler à quelque chose comme ceci:Puis vous auriez juste besoin d'ajouter votre convertisseur comme une ressource, en utilisant la syntaxe ressemble à ceci (où
src
est mappé à l'espace de noms où le convertisseur est définie):Je voudrais le faire avec une autre propriété booléenne appelée
HasAddress
qui renvoieAddress.Length > 0
.Vous devriez aussi n'oubliez pas de signaler le changement de propriété pour
HasAddress
dans le setter deAddress
.Vous pouvez créer un
StringToVisibility
convertisseur.Il sera de retour
Visibility.Visible
s'il est lié chaîneis not null or empty
etVisibility.Collapsed
si il est.Utiliser ce convertisseur tandis que la liaison
Address
avecVisibility
propriété de votreTextBlock
.Exemple: