@WPF ToolTip não atualiza
Assumindo que eu tenha uma classe simples que represente um membro da equipe
class Staff
{
public string FirstName { get; set; }
public string FamilyName { get; set; }
public int SecondsAlive { get; set; }
}
e eu tenho um DataTemplate para a equipe
<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>
Em seguida, mostro um monte de funcionários em um ListBox
myListBox.ItemsSource = GetAllStaff();
Material padrão muito bonito. O problema que tenho é que a dica de ferramenta que mostra o número de segundos que alguém está vivo não é atualizada. Quando você passa o mouse sobre um membro da equipe, ele funciona bem, mas a partir de então mantém esse valor para sempre. Eu poderia implementar o INotifyPropertyChanged para contornar isso, mas parece um exagero fazer isso para todos os membros da equipe sempre que o SecondsAlive mudar. Digamos que eu tenha 400 funcionários na lista, então eu tenho que gerar 400 eventos, mesmo que o usuário nunca possa olhar para outra dica de ferramenta. O que eu gostaria é fazer com que a dica de ferramenta solicite a propriedade SecondsAlive sempre que for mostrada. Isso é possível
Observe que este é apenas um exemplo e eu não preciso saber quantos segundos meus funcionários estão vivos :-) Mas eu tenho o mesmo problema que preciso aumentar cerca de 400 vezes apenas para uma dica de ferramenta que alguém provavelmente não vai olhar.