2010-06-30 50 views
0

我試圖找出如何調用WCF在XAML工具提示對象異步模式異步調用WCF服務。到目前爲止,我得到了我的組合框項目模板在XAML

內將以下代碼組合框從數據庫中抽取幾個itemNames中和toolip每當出現鼠標上的任何項目徘徊。我試圖在該工具提示中顯示有關懸停項目的更多信息。這是我需要以異步方式調用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的屬性。所以當從wcf接收到異步結果時,它會更新對象屬性,NotifyPropertyChanged被觸發,並且WPF綁定更新工具提示。在代碼隱藏在工具提示的開業事件提示值 觸發WCF異步請求。

+0

謝謝,我會嘗試這一個。我能夠使用follwing方法在這個問題上半途而廢。我創造了window.resources部分中的對象數據提供者,並用它來調用relavent方法(發生在同步模式),並從服務中獲得的數據對象的列表。在對象數據提供程序中,我放入了一個空字符串參數,然後將此數據提供者綁定到上面顯示的數據模板部分中的堆棧面板的dataContext。我需要做的是在數據模板中的文本塊元素上懸停時更改對象數據提供程序上的字符串參數。 – user377414 2010-07-02 03:50:40