如何:绑定到 Web 服务
更新:2007 年 11 月
此示例演示如何绑定到由 Web 服务方法调用返回的对象。
示例
此示例使用 MSDN/TechNet Publishing System (MTPS) Content Service(MSDN/TechNet 发布系统 (MTPS) 内容服务)检索指定文档支持的语言列表。
在调用 Web 服务之前,需要先创建对该服务的引用。若要使用 Microsoft Visual Studio 创建对 MTPS 服务的 Web 引用,请按照以下步骤操作:
在 Visual Studio 中打开项目。
从“项目”菜单上单击“添加 Web 引用”。
在对话框中,将“URL”设置为 http://services.msdn.microsoft.com/contentservices/contentservice.asmx?wsdl。
按“转到”,然后按“添加引用”。
接下来,调用 Web 服务方法并将相应控件或窗口的 DataContext 设置为返回的对象。MTPS 服务的 GetContent 方法采用对 getContentRequest 对象的引用。因此,以下示例首先设置一个请求对象:
// 1. Include the web service namespace
using BindtoContentService.com.microsoft.msdn.services;
...
// 2. Set up the request object
// To use the MSTP web service, we need to configure and send a request
// In this example, we create a simple request that has the ID of the XmlReader.Read method page
getContentRequest request = new getContentRequest();
request.contentIdentifier = "abhtw0f1";
// 3. Create the proxy
ContentService proxy = new ContentService();
// 4. Call the web service method and set the DataContext of the Window
// (GetContent returns an object of type getContentResponse)
this.DataContext = proxy.GetContent(request);
设置 DataContext 后,可以创建与 DataContext 所设置到的对象属性的绑定。在此示例中,DataContext 设置为 GetContent 方法返回的 getContentResponse 对象。在以下示例中,ItemsControl 绑定到 getContentResponse 的 availableVersionsAndLocales 的 locale 值并显示该值。
<ItemsControl Grid.Column="1" Grid.Row="2" Margin="0,3,0,0"
ItemsSource="{Binding Path=availableVersionsAndLocales}"
DisplayMemberPath="locale"/>
有关 getContentResponse 结构信息,请参见 Content Service documentation(内容服务文档)。有关完整示例,请参见 绑定到 Web 服务。