我的问题很简单:何时(在什么事件上?)我可以确定控件已完全加载并且还具有其状态和模板吗?
我为什么要问:
从墓碑恢复后,我正在尝试恢复我自己的 WP7 控件的状态。此控件看起来像每周视图中的日历。在此日历中,您可以选择许多显示为彩色矩形的项目。
如果我选择其中任何一个,然后转到墓碑并返回页面,似乎我的控件忘记了哪些Rectangles
被选中。事实上,它并没有忘记数据本身,而是Rectangles
忘记了他们选择的状态。
从墓碑中恢复后,我尝试Rectangles
通过将它们设置VisualState
为“已选择”来选择它们(这适用于任何其他场景)。我发现它失败了,因为VisualStateManager
找不到"Selected"
状态。
我知道这很棘手,因为当从墓碑回来时,控件的构建与任何“正常”情况下的完全不同。(例如Bindings
,Templates
不要以相同的顺序应用)但是直到现在我一直可以相信,当FrameworkElement.Loaded
被解雇时,我已经准备好控制。现在好像VisualState
不是。(我试图从Loaded
事件处理程序设置状态,但结果是一样的,VisualStateManager.GoToState
返回false
。)
我还能做什么?