WPF Multibinding строковый формат даты - PullRequest
8 голосов
/ 27 января 2011

Я пытаюсь объединить 2 поля информации в моей сетке с помощью Multibinding, Multibinding работает нормально, но у меня возникают проблемы, когда я пытаюсь начать форматирование 1 из полей, которое является датой в этой привязке.

2 поля: Инициалы пользователя, т.е. EGJ и дата входа в надежде получить комбинированное поле, похожее на «EGJ - 01/01/2011»

Ниже я нахожусь с моим существующимXAML

<tk:DataGridTextColumn.Binding>
  <MultiBinding StringFormat=" {0} - {}{1:dd/MM/yyyy}">
    <Binding Path="UserInitials" />
    <Binding Path="EntryDate" />
  </MultiBinding>
</tk:DataGridTextColumn.Binding>   

Любая помощь или указатели наиболее ценны

Ответы [ 2 ]

19 голосов
/ 27 января 2011

Не видел дрова для деревьев

Простое удаление пустых скобок решило мою проблему.

<tk:DataGridTextColumn.Binding>
  <MultiBinding StringFormat=" {0} - {1:dd/MM/yyyy}">
    <Binding Path="UserInitials" />
    <Binding Path="EntryDate" />
  </MultiBinding>
</tk:DataGridTextColumn.Binding>

Спасибо всем, кто нашел время, чтобы посмотреть.

5 голосов
/ 24 июля 2012

Если вы не собираетесь использовать начальный пробел в отформатированном значении, вы должны использовать эту привязку вместо:

<tk:DataGridTextColumn.Binding> 
  <MultiBinding StringFormat="{}{0} - {1:dd/MM/yyyy}"> 
    <Binding Path="UserInitials" />
    <Binding Path="EntryDate" />
  </MultiBinding>
</tk:DataGridTextColumn.Binding>

Если StringFormat начинается с левой фигурной скобки {, синтаксический анализатор XAML требует, чтобы вы избежали его, используя пару фигурных скобок {}. В противном случае синтаксический анализатор будет сбит с толку, поскольку в синтаксисе расширений разметки также используются фигурные скобки.

Подробности приведены в документации XAML для {} Escape-последовательность / расширение разметки .

Возможно, вы сначала правильно разместили escape-последовательность в строке формата, а перемещенные объекты привели к тому, что пустая пара скобок оказалась в неправильном месте?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...