Проблемы с переносом строки WPF

У меня есть TextBlock, и я хочу показать информацию из базы данных. Я не хочу отображать такой текст:

Task for Day xy
- blabla
- blabla 
- more blablabla

Как-то мне нужно включить символ для новой строки ... Я думаю о \ n ... чтобы текст в базе данных выглядел так:

Задание на день xy \ n- блабла \ n- блабла \ n- больше блаблабла

не работает.

Я пытался и искал в Интернете часами .. нет решения, как это сделать. Также это не работает:

Task for Day xy<LineBreak />- blabla<LineBreak />- blabla<LineBreak />- more blablabla

приложение показывает именно эту строку из базы данных без новых строк ..

здесь часть xaml:

<Grid>
  <Grid.ColumnDefinitions>
      <ColumnDefinition Width="100" />
      <ColumnDefinition Width="*" />
  </Grid.ColumnDefinitions>
  <TextBlock Grid.Column="1" Text="{Binding Date, StringFormat={}{0:dd.MM.yyyy}}" Margin="6" />
  <TextBlock Grid.Column="2" Text="{Binding Notes}" Margin="6" />
</Grid>

Любые идеи?


person pat    schedule 18.08.2011    source источник


Ответы (2)


Я бы не рекомендовал сохранять разрывы строк в базе данных, поскольку разрывы строк не будут одинаковыми для разных платформ. Я бы просто добавил разрывы строк перед отображением с помощью System.Environment.NewLine.

person Brent Stewart    schedule 18.08.2011
comment
Что ж, если вы используете WPF, независимость от платформы в любом случае трудно достичь ... - person Heinzi; 18.08.2011
comment
Верно, но не гарантируется, что данные будут использоваться только из WPF. - person Brent Stewart; 18.08.2011

Просто включите в текст обычный символ новой строки, никаких необычных escape-последовательностей или тегов XML:

 string fromDb = ... // get string from DB
 myPropertyWhichIsBoundToWpf = fromDb.Replace("hereShouldBeALinebreak", 
                                              System.Environment.NewLine);
person Heinzi    schedule 18.08.2011
comment
спасибо, я думал о чем-то в этом роде. просто надеялся, что есть лучшее решение - person pat; 19.08.2011
comment
@patricci: Альтернативой было бы создание конвертера, который добавляет за вас новую строку. Таким образом, вы можете связать данные напрямую, не добавляя новое свойство: msdn.microsoft.com/en-us/library/ - person Heinzi; 19.08.2011