CodeSOD: Вернуться назад, дале... Заметка
The Daily WTF на русском

CodeSOD: Вернуться назад, далеко назад

Windows Presentation Foundation — это фреймворк пользовательского интерфейса для Windows, который позволяет привязывать элементы управления к данным. Это означает, что текстовое поле может быть связано с числовым полем в классе модели. Фреймворк требует инструкций по преобразованию пользовательских типов, и здесь на помощь приходит интерфейс IValueConverter. Этот интерфейс имеет два метода, Convert и ConvertBack, которые можно использовать для преобразования данных между типами. Класс, реализующий этот интерфейс, может, например, использоваться для преобразования цвета в кисть. Однако API этого интерфейса не очень популярен, а соглашение об именовании может сбивать с толку. Представленный Фредрикой материал освещает проблему со встроенным преобразователем, который не преобразует пустые строки в null при привязке текстового поля к полю типа double. Для решения этой проблемы был написан пользовательский преобразователь, но его реализация не идеальна: переменные названы плохо, а логика неясна. Преобразователь приводит значение к типу double при преобразовании и к типу string при обратном преобразовании, что может вызвать путаницу. Общий подход к использованию преобразователей в WPF не очень популярен, и эта реализация не помогает прояснить ситуацию. Использование преобразователей для обработки пустых текстовых полей как null-значений также может привести к проблемам в будущем. В целом, API преобразователя и его реализация в данном случае плохо спроектированы и могут привести к путанице и потенциальным проблемам.