Существует ли альтернатива виртуализации WPF, при которой контейнеры для всех элементов генерируются (поэтому привязки оцениваются), но сворачиваются, пока не отображаются (поэтому нет накладных расходов на рендеринг/макет)?
Виртуализация означает, что контейнеры не создаются для элементов, которые не видны. Однако мне нужны некоторые дополнительные функции, которые запускаются некоторым (прикрепленным) свойством зависимости в контейнерах элементов. Я профилировал приложение с отключенной виртуализацией и обнаружил, что основным узким местом является проход макета и рендеринг. При включении виртуализации производительность значительно повышается, но, как и ожидалось, привязка не обновляется для элементов, которые не отображаются.
Моя идея состояла бы в том, чтобы иметь альтернативный ScrollViewer, который автоматически сворачивает все элементы, которые не находятся в поле зрения (и снова делает их видимыми, когда они находятся в поле зрения), но по-прежнему отображает бегунок в ожидаемой позиции (и с ожидаемой высотой).
Кто-нибудь знает существующее решение для этого?