var FullName = String.Format("{0} {1}", "FirstName", "LastName");
Как перевести текст TextBlock?Как преобразовать это заявление в XAML?
<TextBlock Text="" />
var FullName = String.Format("{0} {1}", "FirstName", "LastName");
Как перевести текст TextBlock?Как преобразовать это заявление в XAML?
<TextBlock Text="" />
StringFormat
на помощь:
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="FirstName" />
<Binding Path="LastName" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
Если вы хотите знать, что первый {}
делает, это предотвратить WPF думать первый {0}
является MarkupExtension
.
Я понятия не имел, что это возможно .. Обычно я просто создал свойство в моей модели просмотра, которое вернуло отформатированную строку и привязало свойство Text к блоку TextBlock к этому свойству. – Zack
, и я обычно использовал конвертер для возврата правильно отформатированной строки. Всегда приятно выучить более простой способ сделать что-то! – Saggio
Да, это было невозможно в первой версии WPF. И он работает только тогда, когда целевое свойство является «строкой». Но в остальном это здорово! –
Независимо идентификатор для элемента TextBlock, вам нужно использовать, что в вашем коде и сделать что-то вдоль линий:
TextBlockVariable.Text = FullName;
Я думаю, что искатель ищет решение, подобное тому, что было опубликовано Abe Heidebrecht, где вы используете XAML для достижения строкового формата, но в вопросе недостаточно информации, чтобы точно сказать. – Zack
Я перехватил это, а также правильно. Однако, как поясняет название, я искал разметку XAML. Благодарю. – usefulBee
Ах, извините, я интерпретировал это как «как получить эту переменную в этом XAML». Но я был так же удивлен, узнав о методе строкового формата Abe's! – BenM
Что вы пробовали? –
У вас может быть свойство в вашей привязке, которое возвращает эту форматированную строку и привязывает свойство TextBlock Text к этому свойству в вашей привязке. – Zack