WPF - Оценка лямбд в XAML - PullRequest
       11

WPF - Оценка лямбд в XAML

1 голос
/ 16 декабря 2009

Я пишу приложение в WPF. Становится утомительным делать все мои конвертеры для простых вещей.

Я оглянулся и нашел WPFix . Кажется, это хорошо, но почти год не выпускал релизов и выглядит заброшенным.

Кто-нибудь использовал это? Это стабильно? У кого-нибудь есть какие-либо рекомендации для другого решения, чтобы разрешить Lambdas в XAML (или иначе избежать большого количества Конвертера)?

Ответы [ 3 ]

6 голосов
/ 16 декабря 2009

Чтобы перейти к последней части вашего вопроса: Это - дискуссия о WPF Disciples, которая выдвигает идею, что M-V-VM отрицает большинство потребности в конвертерах; что ViewModel должен представить данные в виде, подходящим для этого представления.

Зачем писать отдельный класс, реализовывать IValueConverter, конкретизировать методы Convert и ConvertBack, просто чтобы получить Int32 для Color, когда вы могли бы просто заставить виртуальную машину выставлять свойство Color в первую очередь, верно?

Я полагаю, что ответ на этот вопрос зависит от того, насколько вы религиозны в отношении разделения между View и ViewModel ... Я начинаю думать, что ViewModel должна просто представлять модель и применять к ней бизнес-правила, и должна «View Agnostic», и, возможно, для управления ViewModel специально для вашего View требуется промежуточный уровень, поэтому, если вы когда-нибудь поменяете свой View (по каким-либо причинам!), Вам не нужно переписывать виртуальную машину, просто «промежуточный» слой ... тогда мне пришло в голову, что WPF уже имеет такого посредника в виде ValueConverters ...

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

Теперь вам нужно решить, хотите ли вы ...

Только мой 2с стоит ...:)

4 голосов
/ 16 декабря 2009

Посмотрев на примеры автора в своем первом сообщении в блоге, я думаю, что он немного упустил этот момент с WPF и XAML.

Конечно, написание простых конвертеров может быть утомительным, но когда вы встраиваете лямбды в свой XAML, вы начинаете двигаться по пути монолитного обзора. Чтобы использовать собственный пример представления коротких дат, сделанный автором, как только вы начнете делать это с лямбдой, вам придется изменить свое представление, если у вас есть пользователь, которому требуется другой формат (например, мм / дд / гг, дд / мм / гг, гг / мм / дд). Если бы они были сохранены как конвертеры, то они могли бы быть размещены со сборкой ресурса и заменены по желанию без изменения представления. Та же концепция применима ко всему, что может измениться из-за культуры пользователя.

Очевидно, что библиотека WPFix может быть крутой для некоторых вещей, и у всех будет немного другое мнение по этому поводу. Но когда вы пишете эти конвертеры, думайте о декларативном характере XAML как о позитивном, а не о негативном - это дает вам абстракцию между фактическим представлением данных и подготовкой этих данных для представления. Если вы пишете простое приложение или быстрый прототип, то смешивание этих двух элементов (View и ViewModel) может быть подходящим, но для более масштабных производств было бы полезно поддерживать разделение между этими двумя.

0 голосов
/ 16 декабря 2009

Вы правы, что с 2008 года не было официальных релизов. Однако последняя регистрация исходного кода была сделана 22 октября 2009 года.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...