Страницы

суббота, 11 мая 2013 г.

Использование ValueConverter в XAML, без объявления ресурсов

ValueConverter известный всем метод обеспечения специальной логики преобразования величин в Binding выражениях.
Но каждый раз при подключении конвертеров к XAML приходится прописывать ресурсы, ссылающиеся на конвертор, что утомительно. Но есть решение, позволяющее подключать конвертер с меньшими затратами.

И этот метод, наследование конвертора от MarkupExtension.
Возьмем для примера простейший конвертор EnumToIntConverter.
Вот его классическая реализация:
Подключение и использование в XAML
Все хорошо, и все прекрасно работает, но каждый раз приходится прописывать ресурсы для подключения конвертера.
Изменим реализацию конвертора, реализован наследование от MarkupExtension
Обращаю внимание, что поле _convertor описано, как static, это не всегда допустимо, и зависит от реализуемого конвертера.
Теперь использование выглядит следующим образом:
Экономия конечно не очень большая, но меньше работать руками всегда приятно.

Комментариев нет :

Отправить комментарий