Быстрый способ изменения родительского элемента UserControl - PullRequest
0 голосов
/ 30 января 2012

В приложении WPF я могу переместить UserControl из ContentControl в другое в коде, подобном this :

myContentControl1.Content = null;
myContentControl2.Content = myUserControl;

Проблема в том, что перемещенный UserControl является довольно тяжелым (состоит из множества меньших элементов управления). Таким образом, описанная выше операция занимает значительное время, почти столько же, сколько и при первоначальной загрузке UserControl. Кажется, что каждый элемент в этом UserControl проходит обработку, чтобы быть перемещенным под другим ContentControl.

Существует ли более эффективный и более быстрый метод из , помещающий UserControl под другого родителя (в моем случае * ContentControl) в качестве его потомка (без необходимости использования пользовательского интерфейса нить обрабатывать все его элементы каждый раз)? (Динамически, в коде позади)

1 Ответ

2 голосов
/ 30 января 2012

Вместо переключения содержимого ContentControl между двумя UserControl, поместите оба UserControl в Grid и переключите их Visibility. Показывая один с текущими данными, обновите другой, невидимый в фоновом режиме. По завершении обновления переключите видимость обоих элементов управления с Visible на Hidden и наоборот. Не используйте Collapsed, так как это приведет к новому циклу макета.

Помещение обоих в Grid без указания Row или Column заставляет их лежать друг над другом.

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