Вы можете экранировать символ %
:
[DisplayFormat(DataFormatString = @"{0:#\%}")]
Обратите внимание, что есть два способа использования \
в качестве экранирующего символа: если вы префиксом строкового литерала дословно обозначаете символ(@
), затем \
символы включаются в строку как есть, что означает, что как часть строки формата single \
будет функционировать как escape-символ.
Без дословного символа @
\
s интерпретируются компилятором как escape-строки *1016* и, как таковые, должны быть экранированы сами, как \\
.
Pickодин или другой, но не оба:
@"{0:#\%}" -> right
"{0:#\\%}" -> right
@"{0:#\\%}" -> wrong