ViewModel

олагая, что у меня есть простой класс, который представляет сотрудника

class Staff
{
    public string FirstName { get; set; }
    public string FamilyName { get; set; }
    public int SecondsAlive { get; set; }        
}

и у меня есть 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>

Затем я показываю целую кучу сотрудников в ListBox

myListBox.ItemsSource = GetAllStaff();

Довольно стандартные вещи. У меня проблема в том, что всплывающая подсказка, показывающая количество секунд, в течение которых кто-то был жив, не обновляется. Когда вы в первый раз наводите курсор мыши на сотрудника, он работает нормально, но с тех пор он сохраняет это значение навсегда. Я мог бы реализовать INotifyPropertyChanged, чтобы обойти это, но кажется излишним делать это для каждого сотрудника, когда SecondsAlive меняется. Скажем, у меня 400 сотрудников в списке, тогда мне нужно вызвать 400 событий, даже если пользователь никогда не увидит другую подсказку. Я хотел бы, чтобы подсказка запрашивала свойство SecondsAlive при каждом его отображении. Это возможно?

Обратите внимание, что это всего лишь пример, и мне не нужно знать, сколько секунд мои сотрудники были живы :-) Но у меня есть та же проблема, которую мне нужно поднять даже около 400 раз только для всплывающей подсказки, которую кто-то, вероятно, не буду смотреть на

Ответы на вопрос(4)

Ваш ответ на вопрос