【发布时间】:2011-04-28 11:37:10
【问题描述】:
我正在制作一个 WP7 Silverlight 应用程序并使用 ViewModel 来存储数据并作为页面的数据上下文。
每个 PhonePage 都有自己的数据,我在 Page_Loaded 事件处理程序中调用 App.ViewModel.LoadData()。有一个 ListBox 显示 ViewModel 中的数据。
我使用 Codeplex 的 Silverlight 工具包中的 TurnstileTransition 过渡。 (http://silverlight.codeplex.com/releases/view/60291)
进一步澄清 转换在 App.xaml 中定义为资源:
<Style x:Key="TurnstileTransition" TargetType="phone:PhoneApplicationPage">
<Setter Property="toolkit:TransitionService.NavigationInTransition">
<Setter.Value>
<toolkit:NavigationInTransition>
<toolkit:NavigationInTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardIn"/>
</toolkit:NavigationInTransition.Backward>
<toolkit:NavigationInTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardIn"/>
</toolkit:NavigationInTransition.Forward>
</toolkit:NavigationInTransition>
</Setter.Value>
</Setter>
<Setter Property="toolkit:TransitionService.NavigationOutTransition">
<Setter.Value>
<toolkit:NavigationOutTransition>
<toolkit:NavigationOutTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardOut"/>
</toolkit:NavigationOutTransition.Backward>
<toolkit:NavigationOutTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardOut"/>
</toolkit:NavigationOutTransition.Forward>
</toolkit:NavigationOutTransition>
</Setter.Value>
</Setter>
</Style>
每个页面的样式定义为:
Style="{StaticResource TurnstileTransition}"
一切正常。
但是,数据在转换完成之前绑定到列表框!!
这看起来很难看!
我可以在过渡的END处处理事件吗(所以我在这里加载数据并绑定它),如果可以,我在哪里添加事件处理程序?
我可以在过渡的START处处理事件吗(所以我在这里清除数据),如果可以,我应该在哪里添加事件处理程序??
您是否建议我必须考虑其他一些解决方案?
如何向过渡的已完成事件添加事件处理程序,过渡对象的名称是什么? 并且过渡有两种类型的过渡,我可以检测出哪种类型的(前进或后退)过渡发生并完成了吗?
【问题讨论】:
标签: silverlight data-binding windows-phone-7 silverlight-toolkit transition