我在 WPF 中有一个列表框,如下所示
<ListBox Name="lstName" DisplayMemberPath ="ListName" ToolTip="{Binding Path=ListName}" />
我的要求是我在列表框中显示的任何项目也应该出现在工具提示中。即,如果项目为“Item1”、“Item2”等,那么当用户通过鼠标指向(悬停)“Item1”时,工具提示应显示“Item1”。对其他人也一样
因此,我的 DisplayMemberPath 设置为我应该显示的属性(并且它正常显示)。然而,工具提示根本没有出现。
该实体如下
public class ItemList
{
public string ListName { get; set; }
}
绑定发生如下
this.lstName.ItemsSource = GetData(); // Assume that the data is coming properly
不要在 ListBox 上设置 ToolTip 属性,而是通过应用样式在 ListBoxItems 上设置它:
<ListBox Name="lstName" DisplayMemberPath="ListName">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="ToolTip" Value="{Binding ListName}"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
这样,每个 ListBoxItem 将有自己的工具提示来显示该项目的值。
由于您直接在 ListBox 上设置 ItemsSource,因此您可能没有设置 DataContext,因此 Binding 在那里不起作用。如果您确实将 DataContext 设置为列表,则无论鼠标位于 ListBox 上的哪个位置,该绑定都会将当前选定的项目显示为工具提示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)