2013-08-27 2 views
1
var FullName = String.Format("{0} {1}", "FirstName", "LastName"); 

Как перевести текст TextBlock?Как преобразовать это заявление в XAML?

<TextBlock Text="" /> 
+1

Что вы пробовали? –

+0

У вас может быть свойство в вашей привязке, которое возвращает эту форматированную строку и привязывает свойство TextBlock Text к этому свойству в вашей привязке. – Zack

ответ

7

StringFormat на помощь:

<TextBlock> 
    <TextBlock.Text> 
     <MultiBinding StringFormat="{}{0} {1}"> 
      <Binding Path="FirstName" /> 
      <Binding Path="LastName" /> 
     </MultiBinding> 
    </TextBlock.Text> 
</TextBlock> 

Если вы хотите знать, что первый {} делает, это предотвратить WPF думать первый {0} является MarkupExtension.

+0

Я понятия не имел, что это возможно .. Обычно я просто создал свойство в моей модели просмотра, которое вернуло отформатированную строку и привязало свойство Text к блоку TextBlock к этому свойству. – Zack

+0

, и я обычно использовал конвертер для возврата правильно отформатированной строки. Всегда приятно выучить более простой способ сделать что-то! – Saggio

+0

Да, это было невозможно в первой версии WPF. И он работает только тогда, когда целевое свойство является «строкой». Но в остальном это здорово! –

1

Независимо идентификатор для элемента TextBlock, вам нужно использовать, что в вашем коде и сделать что-то вдоль линий:

TextBlockVariable.Text = FullName; 
+0

Я думаю, что искатель ищет решение, подобное тому, что было опубликовано Abe Heidebrecht, где вы используете XAML для достижения строкового формата, но в вопросе недостаточно информации, чтобы точно сказать. – Zack

+0

Я перехватил это, а также правильно. Однако, как поясняет название, я искал разметку XAML. Благодарю. – usefulBee

+0

Ах, извините, я интерпретировал это как «как получить эту переменную в этом XAML». Но я был так же удивлен, узнав о методе строкового формата Abe's! – BenM

Смежные вопросы