如何:绑定到 Web 服务
此示例演示如何绑定到由 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
Imports 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
Dim request As New getContentRequest()
request.contentIdentifier = "abhtw0f1"
' 3. Create the proxy
Dim proxy As New ContentService()
' 4. Call the web service method and set the DataContext of the Window
' (GetContent returns an object of type getContentResponse)
Me.DataContext = proxy.GetContent(request)
// 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(内容服务文档)。