Динамически устанавливаемый числовой формат для десятичного числа - PullRequest
0 голосов
/ 05 июня 2018

Мне нужно изменить формат числа Decimal в зависимости от других значений.

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

Сменные световые глобусы - только целые числа = Кол-во может равняться только 1, 2 или 3 ...Количество человеко-часов - в кварталах - количество может равняться 1,25 (2 десятичных знака)Используемое электричество - заряжено до 4 десятичных знаков = Кол-во может быть равно 23.1234

Поэтому я хочу иметь возможность перейти на числовой формат Кол-во в соответствии с типом заряжаемого элемента:

если элемент = Light Globes, формат = 0если элемент = человеко-часы, формат = 0. ##если item = Electricity, format = G4

Из-за динамической природы числового формата использование чего-то вроде DisplayFormat(DataFormatString = "{0:d}")] не подходит (если вы не знаете, как изменить это во время выполнения).

Однако мне нужно, чтобы система «думала» в любом выбранном формате, поэтому, если формат «0,00», мне нужны все форматы отображения, проверки, округления чисел и т. Д. Как «0,00».

Я могу сохранить соответствующий формат каждого элемента в базе данных.

Заранее большое спасибо.

1 Ответ

0 голосов
/ 05 июня 2018

Нельзя добавлять фактические атрибуты (они записываются в IL).Возможным обходным путем может быть создание собственного пользовательского атрибута, который реализует все возможные проверки, форматы отображения и т. Д .;и добавьте этот атрибут во время выполнения (например, this ).

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