Практическое руководство. Привязка к веб-службе
Обновлен: Ноябрь 2007
В этом примере демонстрируется привязка к объектам, возвращаемым при вызове методов веб-служб.
Пример
В этом примере используется Служба управления содержимым MSDN/TechNet Publishing System (MTPS) для получения списка языков, поддерживаемых указанным документом.
Перед вызовом веб-службы необходимо создать ссылку на нее. Чтобы создать веб-ссылку на службу MTPS с помощью Microsoft Visual Studio, выполните следующие действия.
Откройте проект в Visual Studio.
В меню Проект выберите команду Добавить веб-ссылку.
В диалоговом окне установите URL-адрес в значение http://services.msdn.microsoft.com/contentservices/contentservice.asmx?wsdl.
Нажмите кнопку Перейти, а затем Добавить ссылку.
Далее вызовите метод веб-службы и задайте для возвращаемого объекта DataContext соответствующего элемента управления или окна. Метод GetContent службы MTPS принимает ссылку на объект 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 присваивается объекту 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