Возможно, это не прямой ответ на ваш вопрос, но я думаю, что лучший способ сделать это - использовать ListView . Затем вы можете использовать DataTemplate для чтения элементов и другой для непрочитанных элементов. Затем, просто привязав набор почтовых элементов к этому списку, вы заставите ListView сгенерировать и отобразить пользовательский интерфейс для всех элементов. Основным преимуществом этого будет то, что пользовательский интерфейс будет виртуализирован , что означает, что элементы пользовательского интерфейса будут генерироваться только по мере необходимости (когда они прокручиваются в поле зрения) и будут удаляться автоматически, поддерживая отзывчивость вашего пользовательского интерфейса, даже если у вас есть огромное количество элементов в ListView.
Затем можно реализовать DataTemplateSelector для выбора между двумя DataTemplates на основе некоторых атрибутов почтовых элементов.