Кэширование элемента управления Windows Phone 7 - «Элемент уже является потомком другого элемента» - PullRequest
0 голосов
/ 17 января 2011

Я пытаюсь ускорить загрузку моего Windows Phone на 7 страниц. У меня есть «статическая» страница, которая динамически создается в элементе управления Panorama - это означает, что содержимое никогда не меняется.

При первой загрузке я смотрю свой файл конфигурации, создаю отдельные элементы управления PanoramaItem и добавляю их в основной элемент управления Panorama. Я пытаюсь сохранить список в статическом месте, чтобы первоначальное создание происходило только один раз, и я мог просто добавить полностью визуализированную версию в свой элемент управления Panorama при визуализации страницы.

Отлично работает при первой загрузке, но когда я пытаюсь добавить кэшированные PanoramaItems в элемент управления Panorama, я получаю сообщение «Элемент уже является дочерним элементом другого элемента». Это имеет смысл, так как я уже добавил ранее. Но я вижу способ отключения PanoramaItems с помощью первого элемента управления Panorama ...

Возможно, я тоже все неправильно поняла, что кеширование управления ... Дайте мне знать, если есть другой способ сделать это.

1 Ответ

0 голосов
/ 17 января 2011

Вы можете использовать Panorama.Items.Remove (pivotItem) для этого

В качестве примера

Со следующими полями страницы

PanoramaItem pi;
bool blahShown = false;

На печать этогоКнопка, элемент управления сначала создается и отображается, а последующие нажатия удаляются и читаются без создания экземпляра.

private void button1_Click(object sender, RoutedEventArgs e)
{

    if (pi == null) {
        pi = new PanoramaItem();
        pi.Header = "blah";
    }

    if (blahShown) {
        Pano.Items.Remove(pi);
        blahShown = false;
    } else {
        Pano.Items.Add(pi);
        blahShown = true;
    }


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...