我正在尝试以下代码:
<ComboBox x:Name="comboBox">
<ComboBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding}" ToolTip="This will never be shown, why?" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
然后我在后面的代码中分配一些ItemSource
,选择项目并尝试将鼠标悬停在组合框上。结果-没有工具提示。
如果我对ListBox
做同样的操作-每个项目都会显示工具提示。如果我打开ComboBox
弹出窗口-每个项目都会显示工具提示。
如果我窥探它:
然后,可视树中没有CheckBox
。但是内容演示者可以显示它。发生了什么事?
当然我还可以将ComboBox.Tooltip
绑定到例如其SelectedValue
或SelectedIndex.ToolTip
,但它并不总是有效,并且取决于内容和ComboBox
的配置:是ComboBoxItems
还是ItemsSource
的集合?是否使用ValuePath
,等等。
我想了解为什么没有CheckBox
。我希望显示datatemplate中的工具提示。
这可能是Snoop
或其他错误,但是在打开和关闭ComboBox
弹出窗口并点击Snoop
中的刷新按钮之后,它最终显示了CheckBox
:>
但是我的问题仍然是:为什么未显示工具提示?我可以看到它在那里,但是将鼠标悬停在ComboBox
上不会显示任何内容。
答案 0 :(得分:1)
为什么不显示工具提示?
由于一个元素只能在元素树中出现一次,因此ComboBox
使用CheckBox
创建VisualBrush
的可视副本,然后在选择框中显示克隆: {3}}
托管Rectangle
的{{1}}没有VisualBrush
。