TextBlock style déclencheurs
Je tiens à combiner le DisplayNames à partir de deux différents Viewmodel, mais seulement SI le premier n'est pas égal à un NullObject.
Je pourrait facilement faire cela en soit un convertisseur ou un parent modèle de vue, mais je suis en espérant que ma tentative à l'aide de DataTrigger a une solution facile.
Cheers,
Berryl
Ce n'affiche rien du tout:
<TextBlock Grid.Column="2" Grid.Row="0" >
<TextBlock.Inlines>
<Run Text="{Binding HonorificVm.DisplayName}"/>
<Run Text="{Binding PersonNameVm.DisplayName}"/>
</TextBlock.Inlines>
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding HonorificVm.Honorific}" Value="{x:Static model:Honorific.NullHonorific}">
<Setter Property="Text" Value="PersonNameVm.DisplayName"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
Btw, si cela ne montre rien du tout il n'y a probablement quelque chose de mal avec votre DataContext et/ou les liaisons.
OriginalL'auteur Berryl | 2012-06-25
Vous devez vous connecter pour publier un commentaire.
Je le scinde en deux
TextBlocks
et de ne modifier que la visibilité à l'aide d'un déclencheur. À l'aide de laInlines
et d'essayer de changer leText
dans les déclencheurs vous avez probablement courir dans la priorité problèmes et lesInlines
ne peut être extraite d'unSetter
.par exemple
Une alternative serait un
MultiBinding
au lieu deInlines
:Je n'arrive pas à obtenir ce que vous voulez dire; ajout d'un exemple.
Doux, ouais sens, thx!
Ce que je voulais dire par la course était que je savais en l'utilisant à la fois des pièces d'affichage, avec le bon espace entre eux. Comment saviez-vous que le paramètre de Marge 0,0,5,0 fonctionnerait si bien?
Je viens de l'utiliser fréquemment, et il semble s'adapter dans la plupart des cas, à faire à l'échelle correctement et être en fonction de la police vous pouvez déposer le
Margin
et ajouter un espace à la premièreTextBlock
à l'aide deStringFormat
dans la liaison ("{}{0} "
).OriginalL'auteur H.B.