русский
Germany.ruForen → Архив Досок→ Programmierung

Резюме для программиста

02.04.22 14:02
Re: Резюме для программиста
 
alex445 коренной житель
in Antwort AlexNek 02.04.22 13:08, Zuletzt geändert 02.04.22 14:12 (alex445)
<TextBox 
                Text="{Binding DoubleValue,StringFormat=N2}" 
                PreviewTextInput="NumberValidator" 
                />


Это вы уже свою логику, форматирование и валидаторов добавили. Я же не говорил, что это нерешаемая проблема. Можно обойти как угодно - кастомным конвертером, например. Проблема в том, что раньше работало по-умолчанию, а теперь без обмазки дополнительным кодом или разметкой вдруг перестало работать. И все старые проекты, написанные на 4.0- версиях фреймворка и где нет всяких обмазок, вдруг стали багованные.


Вот обошли заданием форматирования как у вас https://stackoverflow.com/a/31131932/5015385.

Можно своим конвертером.

Там по ссылке ещё монстрячат всякие простыни кода.

Но всё это надо на каждую проперть с плавающей точкой и привязкой к текстбоксу применять.

А можно одно свойство глобально заменить, как я показал.


Если вы с самого начала использования WPF всегда обмазывались тоннами кастомным фреймворков, своих собственных валидаторов, форматтеров и конвертеров, никогда не используя "чистые" вещи, то у вас это могло ни разу и не всплыть.


Я, например, этот ваш код с сеттером, в котором вызывается метод установки свойств, не понимаю. Я когда-то похожее самописное делал, а потом понял, что если долго это не видеть, а потом вернуться, то непонятно, что происходит - приходится снова лезть в вызовы, где там на самом деле происходит присвоение и когда проходит оповещение об изменении свойства. А чел, который после обычной статьи по MVVM придёт, вообще эту кашу не поймёт. У вас обычный сеттер превратился в кучу вызовов из намонстряченных сверху обёрток и "улучшателей". А если я хочу добавить ещё логики в сеттер, мне куда её поместить? До вызова вашего метода, после, или прямо в него?

 

Sprung zu