Я пытаюсь отобразить ярлык адреса. что я хочу, если AddresssLine2 не является пустой строкой (ее никогда не является нулевой), она должна отображать ее, затем новую строку (я использую VB, поэтому ее & # x0a), иначе просто отобразится AddressLine2, которая является пустой строкой, поэтому в escense игнорируется. однако StringFormat внутренней привязки AddressLine2 полностью игнорируется. он просто отображает значение AddressLine2 и игнорирует StringFormat. Я даже попытался поместить константу только в StringFormat (StringFormat = "hi"), но он проигнорировал ее и привязал непосредственно к AddressLine2. вот моя разметка.Вложенная привязка XAML StringFormat
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} 
{1}
{2} {3}, {4} {5}">
<Binding Path="FullName" />
<Binding Path="AddressLine1" />
<Binding Path="AddressLine2" StringFormat="{}{0}
" />
<Binding Path="City" />
<Binding Path="State" />
<Binding Path="ZipCode" />
</MultiBinding>
</TextBlock.Text>
мой вопрос: почему она игнорирует внутреннюю StringFormat (я перепробовал все различные комбинации, "'{0}
'"
, "'{}{0}
'"
, " {0}
"
, никто не работал)? Кроме того, есть ли лучший способ сделать это (в XAML, я не хочу, чтобы конвертер или какой-либо код позади)?
Спасибо. Я на самом деле просто понял, что я пробовал, было глупо, даже если бы это сработало, я бы не получил результаты, которые я искал. У вас есть идея, как перейти к условному введению новой строки? – Fragilerus
Без проблем! Вы можете использовать конвертер или все решения Xaml: использовать DataTemplate, стилизовать его и добавить триггеры, чтобы скрыть строки, поместить их в ContentControl и позволить свойству Content связываться с вашим DataContext. – Arcturus