#asp.net #wpf #silverlight #silverlight-4.0
#asp.net #wpf #silverlight #silverlight-4.0
Вопрос:
Я только начинаю пачкать руки silverlight, а «конвертер значений» продолжает выскакивать. Я не помню, чтобы читал о них в ASP.NET мир веб-приложений. Является ли это чем-то особенным в Silverlight / WPF? Какова его цель?
Спасибо!
Ответ №1:
Когда вы привязываете данные к элементам управления, будут моменты, когда данные необходимо будет изменить или немного подправить на пути к элементу управления или когда данные покидают элемент управления и возвращаются к исходному свойству (например, во время двухполосной привязки). Конечно, вы всегда можете написать код для изменения заданного значения, но во многих случаях гораздо проще написать простой преобразователь значений, который можно использовать повторно. В этом посте я расскажу о создании преобразователя значений, а затем покажу код для нескольких преобразователей значений, которые я использую довольно часто.
Комментарии:
1. В ASP.NET похоже на обычный старый обработчик событий с некоторым кодом реализации для изменения значения. Почему специальное обозначение «преобразователь значений»?
2. Я полагаю, что внедрение IValueConverter обеспечивает чистый последовательный способ решения этой проблемы.
3. т.е. инкапсуляция и возможность повторного использования.
Ответ №2:
Существует разительный контраст между веб-платформой и Windows, когда дело доходит до привязки данных. Особенно в WPF / Silverlight / Windows Phone 7. Эти технологии поддерживают привязку к данным иначе, чем Web, который не имеет состояния.
Очень распространенный пример преобразования значений — это когда вы хотите скрыть или показать элемент управления в WPF / Silverlight. Элементы управления, такие как stack panel, имеют свойство видимости, которое является перечислением. Мы можем назначить такие значения, как Видимый / Свернутый / Скрытый, чтобы показать или скрыть панель стека. В большинстве случаев видимость контролируется логическим значением. Итак, вы используете преобразователь для преобразования логического значения в видимость.
Другим примером преобразователя значений может быть форматирование полей сумм. Допустим, вы хотите отобразить 1000, которая хранится в базе данных как 1000,00 долларов США, в текстовом поле сумма. Для этого вы можете использовать преобразователь значений.
Возможности безграничны. Вы можете думать о преобразователе значений как о визуальном представлении чего-либо. Другой пример, который я могу придумать, — это прогресс завершения любой задачи. Вы можете отображать красивую красочную панель прогресса вместо отображения значений типа 10%, 20%, 30% выполнено 🙂
Надеюсь, это поможет.