J'ai ce que je pensais être une simple exigence, mais j'ai du mal à m'expliquer comment le faire.'Liste' pliante d'éléments liés dans WPF
Je suis liaison à une adresse (Ligne1, Ligne2, Line3, Line4 par exemple)
Ce que je veux faire est l'affichage
Line1
Line2
Line3
Line4
Mais si une ligne est vide ou nulle, je « d comme à « l'effondrement »:
Line1
Line3
Line4
J'ai essayé un StackPanel avec TextBlocks - mais je n'ai pas travaillé sur la façon d'obtenir les TextBlocks à « disparaître » si elles sont vides. J'ai également essayé MultiBinding, mais je n'arrive pas à trouver comment obtenir un retour à la ligne dans StringFormat.
<TextBlock>
<TextBlock.Text>
<!-- Doesn't work: "System.FormatException" -->
<MultiBinding StringFormat="{}{1}\n{2}\n{3}\n{4}">
<Binding Path="Line1"/>
<Binding Path="Line2"/>
<Binding Path="Line3"/>
<Binding Path="Line4"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
Des idées?
Il est moche, mais je pense que je le préfère, parce que je ne veux pas que ma classe ait à s'inquiéter de la façon dont les données vont être affichées – Benjol
Vous ne voulez pas éliminer tout style global appliqué à TextBlock, ajoutez BasedOn = "{StaticResource {x: Type TextBlock}}" à votre déclaration de style (je pense que j'ai raison) –
@Benjol: si vous utilisez MVVM, cela devient beaucoup plus naturel, cela signifie que votre machine virtuelle s'inquiète de la façon dont les choses sont affichées et qu'elle aura la propriété en lecture seule pour faire l'agrégation –