Можно ли использовать стиль WPF для применения форматирования валюты к ячейке DataGrid? - PullRequest
1 голос
/ 07 сентября 2010

У меня есть WPF DataGrid и я хочу применить формат валюты к нескольким столбцам. Я могу сделать это для каждого столбца, используя Binding={Binding FieldName, StringFormat={}{0:C}, но я бы предпочел определить формат валюты один раз - предположительно в ресурсе <Style> - и просто применить этот ресурс к каждому столбцу, который требует форматирования.

Проблема в том, что я понятия не имею, как установить свойство StringFormat в Binding из стиля. Можно ли установить это или подобное свойство в <Style>, или я лаю неправильное дерево при таком подходе?

Обновление: Я успешно применил стиль к ячейкам в моем DataGridTextColumn, и установка свойства ContentStringFormat для ячейки выглядит так, как будто это будет правильным ... Значение, которое я там ввел, похоже, игнорируется.

1 Ответ

1 голос
/ 08 сентября 2010

Вы можете создать шаблон для ячейки DataGrid и использовать значение {TemplateBinding ContentPresenter.Content} для параметра конвертера.

Я не проверял этот код, но что-то вроде:

<ControlTemplate TargetType="{x:Type DataGridCell}" x:Key="CurrencyFormatCell">
    <TextBlock 
        Text="{TemplateBinding ContentPresenter.Content, Converter={StaticResource FormatCurrencyConverter}}"
        ForeGround="{TemplateBinding ContentPresenter.Content, Converter={StaticResource CurrencyTextColorConverter}}"
        />
</ControlTemplate>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...