可以通过编程方式在WinJS / Windows 8应用程序中设置列表视图的布局



我有一个在多个地方使用的 ListView 模板,我想即时更改布局类型:

<div class="sorteditemslist" arial-label="sorted items" 
   data-win-control="WinJS.UI.ListView"
   data-win-options="{layout: { type: WinJS.UI.ListLayout}}"
   data-win-bind="winControl.itemDataSource: items.dataSource; winControl.iteminvoked: ItemInvoked;">

默认布局类型是WinJS.UI.GridLayout但在某些情况下,我想将其更改为ListLayout

是的,这是可能的。我能够使用以下代码使其正常工作:

var listView = element.querySelector(".sorteditemslist").winControl;
WinJS.ui.setOptions(listView, { layout: { type: WinJS.UI.ListLayout }});

此外,请确保在模板中提取对布局的引用,或在代码中处理这两种情况。有关布局的详细信息,请参阅 msdn 页

正如@wloescher指出的,您可以使用:

listViewElem.layout = new WinJS.UI.GridLayout({ orientation: 'horizontal', maxRows: 1 });

最新更新