Я нахожусь на Silverlight 4 + проект MVVM, использующий ASMX для сервисов.
Я нахожу DataForm
быть громоздким. IEditableObject
, привязка, и т.д., кажись, быть болью. Я сделал некоторые формы в своем приложении без DataForm, и они удались действительно хорошо.
Таким образом, я предполагаю, что мой реальный вопрос, что dataform дает мне, что ручной взрыв форма не был бы? Действительно ли это - редактирование нескольких записей одновременно? Поскольку это походит на рецепт для a concurrency
кошмар.
Не уверен в вашей конкретной ситуации, но я могу ответить с точки зрения служб RIA (которые особенно выигрывают от DataForm).
Службы RIA передают сущности вашему приложению silverlight. Эти enties уже являются RESTful и уже реализуют интерфейс IEditableObject (преимущество № 1), они также могут нести метаданные, такие как требования к полям, свойства навигации, допустимые диапазоны, сообщения об ошибках и т. Д. По умолчанию Entity Framework и RIA Services запускаются. вы переносите эти метаданные, как определено в вашем источнике данных (например, SQL), без каких-либо усилий с вашей стороны (преимущество № 2). Использование одной из встроенных коллекций, таких как CollectionViewSource или DomainDataSource, обеспечивает реализацию навигации (через интерфейс ICollectionView) (преимущество № 3).
Исходя из того, что вы заявили, похоже, что вы передаете данные достаточно вручную, и вы не можете сразу получить эти преимущества.
Чтобы получить некоторые из этих преимуществ, попробуйте добавить метаданные в объект модели (добавив атрибуты из пространства имен System.ComponentModel.DataAnnotations .), Попробуйте использовать CollectionViewSource для реализации фильтрации, сортировки и навигация вашей коллекции.