小编Mik*_*lls的帖子

WPF工具提示不会更新

假设我有一个代表工作人员的简单类

class Staff
{
    public string FirstName { get; set; }
    public string FamilyName { get; set; }
    public int SecondsAlive { get; set; }        
}
Run Code Online (Sandbox Code Playgroud)

我有一个DataTemplate供员工使用

<DataTemplate DataType={x:Type Staff}>
    <StackPanel Orientation="Horizontal">
        <TextBlock Text={Binding FirstName}/>
        <TextBlock Text=" ">
        <TextBlock Text={Binding FamilyName}/>
        <StackPanel.ToolTip>
            <TextBlock Text={Binding SecondsAlive}/>
        </StackPanel.ToolTip>
     </StackPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

然后我在ListBox中显示了一大堆人员

myListBox.ItemsSource = GetAllStaff();
Run Code Online (Sandbox Code Playgroud)

很标准的东西.我遇到的问题是显示某人活着的秒数的工具提示没有得到更新.当你第一次将鼠标悬停在一名工作人员身上时,它可以正常工作,但从那时起它就永远保持这个价值.我可以实现INotifyPropertyChanged来解决这个问题,但是每当SecondsAlive发生变化时,每个工作人员都可以做到这一点.假设我在列表中有400名员工,那么我必须筹集400个事件,即使用户可能永远不会查看另一个工具提示.我想要的是使工具提示请求显示SecondsAlive属性.那可能吗?

请注意,这只是一个例子,我不需要知道我的员工活了多少秒:-)但我有同样的问题,我需要提高一个甚至大约400次只是为了一个工具提示,有人可能不会看.

.net c# wpf binding

10
推荐指数
1
解决办法
7000
查看次数

标签 统计

.net ×1

binding ×1

c# ×1

wpf ×1