Мой вопрос прост: КОГДА (по какому событию?) Я могу быть уверен, что элемент управления полностью загружен и имеет свои состояния и шаблоны?
Почему я спрашиваю:
Я пытаюсь восстановить состояние своего собственного элемента управления WP7 после восстановления из надгробной плиты. Этот элемент управления выглядит как календарь в еженедельном просмотре. В этом календаре вы можете выбрать множество элементов, отображаемых в виде цветных прямоугольников.
Если я выберу любой из них, а затем перейду к надгробной плите и вернусь на страницу, кажется, что мой элемент управления забыл, какие Rectangles
были выбраны. Фактически, он НЕ забыл сами данные, но Rectangles
забыл свое выбранное состояние.
После восстановления из надгробной плиты я пытаюсь выбрать Rectangles
, установив для VisualState
значение «Выбрано» (что работает в любом другом сценарии). Я обнаружил, что это не удается, потому что VisualStateManager
не может найти состояние "Selected"
.
Я знаю, что это сложно, потому что когда вы возвращаетесь из надгробной плиты, элементы управления строятся не так, как в любом «нормальном» случае. (например, Bindings
и Templates
не применяются в одном и том же порядке) Но до сих пор я всегда мог поверить, что когда стрелял FrameworkElement.Loaded
, у меня были готовые элементы управления. Теперь кажется, что VisualState
нет. (Я пытался установить состояние из Loaded
обработчика событий, но результаты те же, VisualStateManager.GoToState
возвращается с false
.)
Что еще я могу сделать?