2010-05-09 2 views
4

Я создал службу WCF RIA, которую я хотел бы использовать с приложением WPF. Я добавил несколько правил проверки System.ComponentModel.DataAnnotations на метаданные объектов, которые отлично работают на сервере, когда я вызываю .SubmitChanges (changeSet) из клиента. Я также хотел бы проверить мои сущности на стороне клиента, прежде чем я убью свои изменения на сервере, но я понятия не имею, как это сделать. Любая помощь в этом отношении будет принята с благодарностью! Спасибо ....Как выполнить проверку на стороне клиента в WPF с помощью служб WCF RIA

+0

Возможный дубликат [Как использовать службы WCF RIA с приложением WPF?] (Http://stackoverflow.com/questions/2551258/how-to-use-wcf-ria-services-with-wpf-application) – Shimmy

ответ

2

Насколько я знаю, WCF RIA Services для WPF не существует (хотя я был бы рад оказаться ошибочным, поскольку я жду этого ...), так что вам нужно сделайте клиентскую работу самостоятельно.

Используйте VisualTreeHelper, чтобы просматривать все элементы управления в вашей форме и рекурсивно, если элемент управления является панелью. Для каждого элемента управления есть список потенциально связанных свойств (я предполагаю, что в этом случае только один). Например, TextBox потенциально имеет связанную с TextBoxProperty, CheckBox будет иметь связанную с IsCheckedProperty. Используйте BindingOperation.GetBinding, чтобы получить экземпляр Binding, который дает вам свойства Source и Path. Теперь используйте отражение источника, чтобы узнать, есть ли связанная с ним аннотация данных. Если есть, проверьте это.

Да, кода очень много.

+0

Спасибо за быстрый ответ! К сожалению, мое приложение не использует привязку. Я создаю один или несколько ChangeSetEntry вручную, а затем отправляю их через провод, вызывая SaveChanges (changeSet). Я бы хотел проверить данные до того, как он перейдет через провод. К сожалению, как вы сказали, мне кажется, что я S.O.L. Во всяком случае, еще раз спасибо за вашу помощь ... –

+0

Я использовал привязку как способ добраться до исходного объекта и его членов. Из ChangeSetEntry у вас есть доступ к модифицированному объекту и его исходным значениям. Сравнение их даст вам измененные члены, и, таким образом, благодаря отражению, вы дадите аннотации данных для проверки. – Timores

+0

Пожалуйста, проголосуйте Пожалуйста, проголосуйте [здесь] (http://dotnet.uservoice.com/forums/57026-wcf-ria-services/suggestions/746156-support-for-wpf) и [здесь] (https: // connect .microsoft.com/VisualStudio/обратная связь/подробности/621763/поддержка-ФОС-Риа-сервис-для-МОФ). – Shimmy

 Смежные вопросы

  • Нет связанных вопросов^_^