Практическое руководство. Привязка к веб-службе

В этом примере демонстрируется привязка к объектам, возвращаемым при вызове методов веб-служб.

Пример

В этом примере используется Служба управления содержимым MSDN/TechNet Publishing System (MTPS) для получения списка языков, поддерживаемых указанным документом.

Перед вызовом веб-службы необходимо создать ссылку на нее. Чтобы создать веб-ссылку на службу MTPS с помощью Microsoft Visual Studio, выполните следующие действия.

  1. Откройте проект в Visual Studio.

  2. В меню Проект выберите команду Добавить веб-ссылку.

  3. В диалоговом окне установите URL-адрес в значение http://services.msdn.microsoft.com/contentservices/contentservice.asmx?wsdl.

  4. Нажмите кнопку Перейти, а затем Добавить ссылку.

Далее вызовите метод веб-службы и задайте для возвращаемого объекта DataContext соответствующего элемента управления или окна. Метод GetContent службы MTPS принимает ссылку на объект 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 присваивается объекту getContentResponse, возвращенному методом GetContent. В следующем примере ItemsControl выполняет привязку к locale и отображает значения availableVersionsAndLocales для getContentResponse.

<ItemsControl Grid.Column="1" Grid.Row="2" Margin="0,3,0,0"
              ItemsSource="{Binding Path=availableVersionsAndLocales}"
              DisplayMemberPath="locale"/>

Дополнительные сведения о структуре getContentResponse см. в разделе Документация службы управления содержимым.

См. также

Задачи

Практическое руководство. Обеспечение доступности данных для привязки в XAML

Основные понятия

Общие сведения о связывании данных

Общие сведения об источниках привязки