2013-03-04 3 views
1

Я хочу автоматически добавить часть текста в текстовое поле. Например, я хочу отображать статистику для Джона Латхама, поэтому было бы неплохо добавить автоматически «Статистика для», после чего я назначу свойство Text для моего контроля. Я сделал некоторые исследования, но по какой-то причине это не работает для меня. Не могли бы вы проверить, почему? Наверное, это может быть причиной из-за Bindings, как я могу добиться того же результата из кода? Благодаря!Статическое значение текстового поля + текст

<StackPanel Grid.Row="0" Grid.Column="1"> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="50"/> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 
     <Image Name="imgStatistic" Source="/Images/Statistics.gif" Grid.Column="0" HorizontalAlignment="Left" Height="50" Width="50"/> 
     <TextBlock Text="{Binding Title, StringFormat='Statistic for {0}'}" Name="txtStatistics" VerticalAlignment="Bottom" Grid.Column="1" FontSize="18" TextWrapping="Wrap"/> 

    </Grid> 
</StackPanel> 

Код За:

this.txtStatistics.Text = emp.FirstName + " " + emp.LastName; 
+0

StringFormat применяется наряду с обязательными. Когда вы устанавливаете «Text» из кода, вы больше не используете привязку. – McGarnagle

+0

Как заставить его работать с кодом? –

+0

Что не так с другим TextBlock, содержащим «Статистика для» – Phil

ответ

4

Text="{Binding Title}" означает, что он связывает значение Title имущества DataContext в TextBox к TextBox «s Text.
Это громоздкое предложение скажет: вам нужен объект, у которого есть свойство Title, и установите его как DataContextTextBox или одного из его родителей.

Если у вас нет такого объекта, привязка данных не для вас.
Просто измените свой код на этот:

this.txtStatistics.Text = string.Format("Statistic for {0} {1}", 
             emp.FirstName, emp.LastName); 
+0

И этот объект, особенно если только POCO, должен будет реализовать 'INotifyPropertyChanged' правильно? –

+0

@MichaelPerrenoud: Если текст в TextBox должен быть обновлен при внесении изменений в свойство: Да –

+0

ОК, я просто хотел удостовериться, что был прав, исходя из моего предположения. Я пропустил этот интерфейс *** много ***, когда я впервые начал путь привязки данных к WPF и Silverlight. –

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