我正在使用我正在编写的应用程序的默认Windows应用商店模板。
我希望列表视图中的第一个项目突出显示;我使用自定义itemtemplateSelector实现了这一点。
我遇到的问题是我需要在页面被捕捉时修改样式。
“默认”模板不使用模板选择器,因此只需更改visualstate storyboard中的itemTemplate即可。
如果我修改此代码以更改itemTemlateSelector(storyboard.TargetProperty =“itemTemplateSelector”),我会收到运行时错误。
然后我尝试修改我的DatatemplateSelector类以考虑ApplicationViewState:如果页面加载到捕捉/全屏状态但不更改应用程序视图状态更改时使用的模板,则此方法有效。
有没有办法'刷新'Listview以便重新应用模板?
有没有其他方法可以做到这一点?
感谢您提供任何帮助/建议。
答案 0 :(得分:0)
示例模板使用两个不同的列表,一个用于Snapped,另一个用于其余列表。这是一个非常简单的方法。
我没有测试过下一个,但如果您的页面是LayoutAwarePage,那么您可以在DetermineVisualState方法中更改选择器。
protected override string DetermineVisualState(ApplicationViewState viewState)
{
if (viewState == ApplicationViewState.Snapped)
{
// change to snapped selector
}
else
{
// change to regular selector
}
return base.DetermineVisualState(viewState);
}