.net 快照时更改Listbox的itemTemplateSelector时出现的问题

.net 快照时更改Listbox的itemTemplateSelector时出现的问题,.net,windows-8,winrt-xaml,windows-store-apps,.net,Windows 8,Winrt Xaml,Windows Store Apps,我正在编写的应用程序中使用默认的Windows应用商店模板 我希望列表视图中的第一项高亮显示;我使用自定义itemtemplateSelector实现了这一点 我遇到的问题是,我需要在抓拍页面时修改样式 “默认”模板不使用模板选择器,因此只需在visualstate情节提要中更改itemTemplate即可 如果修改此代码以更改itemTemplateSelector(storyboard.TargetProperty=“itemTemplateSelector”),则会出现运行时错误 然后,我

我正在编写的应用程序中使用默认的Windows应用商店模板

我希望列表视图中的第一项高亮显示;我使用自定义itemtemplateSelector实现了这一点

我遇到的问题是,我需要在抓拍页面时修改样式

“默认”模板不使用模板选择器,因此只需在visualstate情节提要中更改itemTemplate即可

如果修改此代码以更改itemTemplateSelector(storyboard.TargetProperty=“itemTemplateSelector”),则会出现运行时错误

然后,我尝试修改我的DatatemplateSelector类以考虑ApplicationViewState:如果页面加载到快照/全屏状态,但在应用程序视图状态更改时不更改所使用的模板,则此操作有效

是否有方法“刷新”Listview,以便重新应用模板

有没有其他方法可以做到这一点


感谢您的帮助/建议。

示例模板使用两个不同的列表,一个用于“快照”,另一个用于其他。这是一个非常容易采取的方法

我没有测试下一个,但是如果你的页面是一个LayoutWarePage,那么你可以在DetermineVisualState方法中更改选择器

    protected override string DetermineVisualState(ApplicationViewState viewState)
    {
        if (viewState == ApplicationViewState.Snapped)
        {
            // change to snapped selector
        }
        else
        {
            // change to regular selector
        }
        return base.DetermineVisualState(viewState);
    }

当在任一视图中加载页面时,这似乎有效,但如果从填充视图切换到快照视图,则似乎不会触发templateselector。我还需要做些什么才能让它正确发射?你有没有弄明白?下面的解决方案对我不起作用,因为我得到了与您相同的结果,它只在特定模式下加载时起作用,而在切换模式时不起作用。如果您能分享任何解决方案或见解,我将不胜感激,谢谢!