捕捉时更改listbox的itemTemplateSelector的问题

时间:2012-10-31 22:38:37

标签: .net windows-8 winrt-xaml windows-store-apps

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

我希望列表视图中的第一个项目突出显示;我使用自定义itemtemplateSelector实现了这一点。

我遇到的问题是我需要在页面被捕捉时修改样式。

“默认”模板不使用模板选择器,因此只需更改visualstate storyboard中的itemTemplate即可。

如果我修改此代码以更改itemTemlateSelector(storyboard.TargetProperty =“itemTemplateSelector”),我会收到运行时错误。

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

有没有办法'刷新'Listview以便重新应用模板?

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

感谢您提供任何帮助/建议。

1 个答案:

答案 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);
    }