繁体   English   中英

如果被绑定的实例未在Silverlight 2中实现INotifyPropertyChanged,如何使用双向绑定?

[英]How do you use two-way binding if the instance being bound does not implement INotifyPropertyChanged in Silverlight 2?

我正在尝试在Silverlight 2中编写一个相当简单的用户控件,该控件允许用户搜索现有地址,可选地更新所选地址并添加新地址。

为此,我整理了一个简单的WCF服务,该服务允许进行简单查询,目前,我将其连接到文本框,列表框组合(很快将被Silverlight Toolkit中的AutoCompleteBox取代)。

我的问题是要理解的,我的服务的返回类型是IList <Address>,而Address不实现INotifyPropertyChanged,并且似乎不适用于从服务返回的对象(也可能被其他客户端调用)以便具有SL2特定功能。什么是最好的方法来促进双向绑定来编辑现有地址。

因此,基本思想如下:

  1. 用户在文本框中输入信息
  2. 调用该服务以检索匹配的地址IList <Address>,该地址将作为Reference.cs中的ObservableCollection <Address>返回给我的服务
  3. 返回值设置为列表框的ItemSource
  4. 用户选择正确的地址并指示需要更新
  5. 绑定到包含多个文本框的控件容器的地址实例

本质上,我希望绑定文本框中的任何更改都自动反映在Address实例中,但是如果没有INotifyPropertyChanged,它将如何工作? 我是否必须在SL2应用程序中创建另一个类来有效覆盖服务数据对象的属性实现?

在那里有人可以指出我在这个方向上的正确方向吗,因为这对我来说没有意义...

干杯,

史蒂夫

您如何生成WCF代理? 我在VS2008的SL2项目中使用了“添加服务引用...”,并且我生成的代理确实实现了INotifyPropertyChanged (即使服务器端类型没有实现)。

对于常规WCF(不是SL2), svcutil具有一个/enableDataBinding开关来完成所有这些操作。 如果使用的是IDE,则可能会有一个复选框。

因为这些代理是从元数据生成的,所以它们完全独立于服务器端代码,因此实现INotifyPropertyChanged的SL2版本没有问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM