我正在试图弄清楚如何在xaml tooltip对象中以异步模式调用wcf。到目前为止,我在我的组合框项目模板
中得到了以下代码组合框有几个从数据库中提取的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>
目前我正在考虑使用后面的代码来跟踪组合框项目上的某些事件,然后以某种方式将内容加载到面板中。我会尝试那个,但我不太确定这个想法。
谢谢。
答案 0 :(得分:1)
我将工具提示绑定到实现INotifyPropertyChanged的对象的属性。因此,当从wcf收到asyn结果时,它会更新对象属性,触发NotifyPropertyChanged并且WPF绑定更新工具提示。 在Tooltip的Opened事件中,在代码隐藏中触发wcf工具提示值的异步请求。