Установка таймера в графическом интерфейсе подходит только в том случае, если вы не контролируете эти данные - например, если вам нужно запросить таблицу базы данных, чтобы узнать, изменил ли ее кто-то другой. Вы обновляете свое представление данных каждую минуту.
Если вы контролируете эти данные, данные должны измениться, и WPF сможет заметить, когда они изменятся. Обычно это просто означает преобразование List<Meeting>
в `Observable '.
У вас может быть один таймер, который срабатывает каждую минуту, и каждый раз проверять каждую встречу (или сортировать их и просто проверять первую)
Или вы можете создать таймер для каждого Совещания, который рассчитан на срабатывание в нужное время.
Или, если вы отсортировали список, вы можете просто установить один таймер на срабатывание при первой встрече, а затем выяснить, что будет дальше (и пересчитать это, если что-то изменится)
Первый, вероятно, наиболее устойчив, но наименее эффективен, а последний - наоборот.