Практическое руководство. Привязка к веб-службе
В этом примере показано, как выполнить привязку для объектов, возвращенных вызовов метода веб-службы.
Пример
В этом примере используется службы содержимого MSDN или TechNet Publishing System (MTPS) для получения списка языков, поддерживаемых указанного документа.
Перед вызовом метода веб-службы, необходимо создать ссылку на него. Для создания веб-ссылки MTPS службе, используя Microsoft Visual Studio, выполните следующие действия:
Откройте проект в Visual Studio.
Из проекта меню, щелкните Add Web Reference.
В диалоговом окне задайте URL-адрес для http://services.msdn.microsoft.com/contentservices/contentservice.asmx?wsdl .
Нажмите клавишу Go и затем добавьте ссылку на.
Затем вызовите метод веб-службы и задайте 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 привязывается к и отображает языкового стандарта значения availableVersionsAndLocales из getContentResponse.
<ItemsControl Grid.Column="1" Grid.Row="2" Margin="0,3,0,0"
ItemsSource="{Binding Path=availableVersionsAndLocales}"
DisplayMemberPath="locale"/>
Сведения о структуре getContentResponse, см. в разделе документации службы содержимого.