2010-11-17 2 views
1

Я довольно новичок в реализациях WCF, и у меня возникают трудности с некоторыми привязками данных. А именно, у меня есть два переключателя внутри приложения silverlight (свойства привязаны к свойствам внутри одного из моих контрактов с данными). У меня также есть маскированное текстовое поле, которое изменяется на основе выбранной кнопки. Текст «Masked Textbox» привязан к другому свойству контракта данных WCF.Событие OnPropertyChanged в WCF DataContract

Мой процесс рассмотрения заключался в том, чтобы реализовать интерфейс «INotifyPropertyChanged» в контракте данных и использовать событие «OnPropertyChanged», которое запустило бы скрытое текстовое поле, чтобы изменить его «маску» на основе выбранной переключателя. Ну, это не получилось так хорошо, что я не смог правильно обработать событие OnPropertyChanged из WCF.

У вас, ребята, какие-то обходные пути к этой, надеюсь, тривиальной проблеме?

Большое спасибо заранее, -Tom

+1

Является ли договор данных объявленным на общей сборке? Вы проверили, что при создании Service Reference новый тип контракта данных не создается? – Anero

ответ

1

Я получил то, что мне было нужно, создав класс оболочки на стороне клиента (который расширил контракт данных WCF). Затем я реализовал интерфейс INotifyPropertyChanged в этом классе-оболочке. Это может быть не самый красивый обходной путь, но он выполняет свою работу.

2

Ваша фраза «Я не могу получить OnPropertyChanged событие работает должным образом с WCF.» вызывает некоторые предупреждающие сигналы.

Могут ли данные изменяться на клиенте или на сервере?

Вы должны понимать, что если служба WCF возвращает объект клиента, то клиент имеет копию этого объекта, а не ссылки. Любые события, вызванные копией объекта сервера, не будут получены клиентом.

Если вы хотите, чтобы уведомления о данных были инициированы сервером и получены клиентом, вам придется реализовать это, используя двустороннюю привязку. Вы не можете внедрять уведомления от сервера к клиенту с помощью событий .NET (по крайней мере, не для части распределенной связи).