0

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

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

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

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

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

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

有没有办法“刷新” Listview 以便它重新应用模板?

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

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

4

1 回答 1

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);
    }
于 2012-11-05T07:35:32.717 回答