Я прошу прощения за то, что не отвечаю на вопрос, но наоборот, навязываю проблему :).
У меня такая же проблема, один PanoramaItem с ItemsControl, привязанный к коллекции ViewModel.Свойство видимости PanoramaItem привязано к базе данных {Binding}, и используется конвертер CollectionToVisibility.Во время отладки с установленной точкой прерывания внутри кода конвертера мне удалось убедиться, что возвращаемое значение в порядке, но PanoramaItem не виден, когда в коллекциях есть элементы.
В ходе моего расследования я понял, что на самом деле, когда первыйВозвращение к коллекции происходит, когда возвращаемое значение равно нулю, поскольку данные коллекции поступают из асинхронного вызова службы, а возвращаемое значение преобразователя - Visibility.Collapsed, и только когда заполнено собрание и возбуждено событие PropertyChanged, второе значение получаетсвойство Collection запускает обновление привязки данных, и возвращаемое значение конвертера теперь Visibility. Видимо, это заставляет меня думать, что PanoramaItem не включается в дерево элементов управления Panorama во время применения шаблона, поскольку видимость установлена как свернутая, и послечто пользовательский интерфейс никогда не загружает PanoramaItem снова.
Я сделал тест, чтобы проверить этот сценарий, возвращая в свойстве get свойства Collection жестко закодированный список элементов, так что fВ первом get есть элементы, и конвертер возвращает Visible в первом запросе get. Все работает как талисман. Я могу даже вычеркнуть коллекцию из элементов, и она будет свернута и наоборот.
Все эточистый Xaml, без кода.Цель этого состоит в том, чтобы скрыть PanoramaItems, которые по какой-то причине не имеют контента для показа.