2010-06-30 1 views
0

Я пытаюсь выяснить, как вызвать wcf в асинхронном шаблоне в объекте подсказки xaml. до сих пор я получил следующий код внутри своего шаблона элемента combobox.асинхронно вызывать службу wcf в xaml

В поле со списком есть несколько ItemNames, вытащенных из базы данных, и инструмент появляется, когда мышь наводится на любой из элементов. Я пытаюсь показать дополнительную информацию о зависающем элементе внутри этой всплывающей подсказки. здесь мне нужно вызвать службу wcf асинхронным способом. не могли бы вы поделиться своими идеями со мной по этому вопросу.

<ComboBox.ItemTemplate> 
    <DataTemplate> 
     <TextBlock x:Name="tbTradeName" Text="{Binding}" /> 
     <DataTemplate.Triggers> 
      <Trigger Property="IsMouseOver" SourceName="tbTradeName" Value="True"> 
       <Setter TargetName="tbTradeName" Property="ToolTip"> 
        <Setter.Value> 
         <ToolTip> 
          <ToolTip.Content> 
           <StackPanel Width="300" Height="150" Background="Orange"> 
            <TextBlock Text="{Binding}" /> 
            <StackPanel Width="300" Height="100"> 

            <!-- I need the content from wcf service here --> 

            </StackPanel> 
           </StackPanel> 
          </ToolTip.Content> 
         </ToolTip> 
         </Setter.Value> 
        </Setter> 
        </Trigger> 
       </DataTemplate.Triggers> 
      </DataTemplate> 
      </ComboBox.ItemTemplate> 

в данный момент им мышления, используя код позади, чтобы отслеживать некоторые события по этому пункту выпадающего списка, а затем каким-то образом загрузить содержимое в панель. Я попробую это, но я не очень уверен в этой идее.

спасибо.

ответ

1

Я бы привязал всплывающую подсказку к объекту объекта, реализующему INotifyPropertyChanged. Поэтому, когда результат asyn получен из wcf, он обновляет свойство объекта, запускается NotifyPropertyChanged и всплывающая подсказка для привязки WPF. Trigger wcf async запрашивает значение всплывающей подсказки в коде в открывшемся событии всплывающей подсказки.

+0

Спасибо, я попробую этот. Я был в состоянии пойти на полпути по этому вопросу, используя подход, основанный на подходе. Я создал поставщика данных объекта в разделе window.resources и использовал его для вызова метода relavent (происходит в синхронном режиме) и получить список объектов данных из службы. в поставщике данных объекта я поместил пустой строковый параметр, а затем привязал этот dataprovider к dataContext панели стека в разделе Шаблон данных, показанном выше. Что мне нужно сделать, так это изменить строковый параметр поставщика данных объекта при наведении на элемент текстового блока в шаблоне данных. – user377414

Смежные вопросы