【问题标题】:OnPropertyChanged Event in WCF DataContractWCF DataContract 中的 OnPropertyChanged 事件
【发布时间】:2011-05-11 17:45:23
【问题描述】:

我对 WCF 实现相当陌生,并且在处理一些数据绑定方面遇到了困难。也就是说,我的 silverlight 应用程序中有 2 个单选按钮(属性绑定到我的一个数据合同中的属性)。我还有一个蒙面的文本框,它会根据所选的单选按钮进行更改。 “蒙版文本框”的文本绑定到 WCF 数据协定的另一个属性。

我的想法是在数据合约上实现“INotifyPropertyChanged”接口,并使用“OnPropertyChanged”事件触发被屏蔽的文本框,根据选择的单选按钮更改其“掩码”。好吧,这并没有那么好,因为我无法让 OnPropertyChanged 事件从 WCF 正常工作。

你们对这个看似微不足道的问题有任何解决方法吗?

提前非常感谢您, -汤姆

【问题讨论】:

  • 数据协定是否在共享程序集中声明?您是否检查过在创建服务引用时没有创建新的数据协定类型?

标签: c# .net silverlight wcf wcf-binding


【解决方案1】:

您的短语“我无法让 OnPropertyChanged 事件从 WCF 正常工作”。触发一些警钟。

数据是在客户端还是服务器上修改?

您必须了解,如果 WCF 服务向客户端返回一个对象,则客户端拥有该对象的 副本,而不是 引用。服务器的对象副本抛出的任何事件都不会被客户端接收到。

如果您希望数据通知由服务器触发并由客户端接收,则必须使用双工(双向)绑定来实现。您不能使用 .NET 事件实现服务器到客户端的通知(至少,分布式通信部分不能)。

【讨论】:

    【解决方案2】:

    通过在客户端创建一个包装类(扩展了 WCF 的数据协定),我得到了我需要的东西。然后我在这个包装类上实现了 INotifyPropertyChanged 接口。这可能不是最漂亮的解决方法,但它可以完成工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      • 2013-08-31
      相关资源
      最近更新 更多