Как узнать, когда пользователь изменил формат даты, времени или числа в системных настройках часов и региона в C #? - PullRequest
0 голосов
/ 17 декабря 2018

Мне нужно подписаться на гипотетическое событие, которое должно запускаться всякий раз, когда пользователь изменяет форматы даты, времени или числа в настройках часов и региона.Ниже показано, как выглядит это окно настроек в Windows 10 (я полагаю, что в старых версиях Win это почти то же самое):

enter image description here

Я должен добиться этого, чтобы вызвать ClearCachedData метод на моем CurrentCulture.

Я пытался подписаться на событие UserPreferenceChanged , следуя решению в этом вопросе.Тем не менее, событие никогда не начинается ...

Я использую WPF, хотя я считаю, что это не должно быть актуально, хотя я упоминаю об этом в случае, если это ...

Более подробная информация

В моем приложении есть сетка данных с редакторами числовых значений (я использую элементы управления Devexpress, хотя это может быть неактуально), поэтому предположим, что эта ячейка содержит значение 1.5 это будет так из-за того, что я установил свои числовые форматы на английский (США) язык.Теперь я перехожу к этим настройкам (при запущенном приложении) и меняю числовые форматы на немецкий (Германия).Затем я хочу обновить отображаемое значение до 1,5 .Эта функция уже поддерживается на элементах управления Devexpress и WPF в целом, мне просто нужно позвонить ClearCachedData и обновить мой макет.

Уже существующее приложение, которое я точно знаю, это Excel (я уверен, что их должно быть намного больше), попробуйте самостоятельно установить значение с плавающей запятой (например, 1,5), и с открытым окном перейдите кизмените числовые форматы с регионом Германии: ячейка обновит свое отображаемое значение до 1,6.

...