Javascript ListView未激发selectionchanged

Javascript ListView未激发selectionchanged,javascript,javascript-events,winjs,windows-8.1,Javascript,Javascript Events,Winjs,Windows 8.1,我的HTML: <div id="listViewBoxOffice" data-win-control="WinJS.UI.ListView" data-win-options="{ itemTemplate: select('#movieThumbnailTpl'), selectionMode: 'single' }"> </div> 我的问题是: 事件selectionchanged从未触发。触发了事件SelectionChangein

我的HTML:

<div id="listViewBoxOffice" 
     data-win-control="WinJS.UI.ListView"  
     data-win-options="{ itemTemplate: select('#movieThumbnailTpl'), selectionMode: 'single' }">
</div>
我的问题是:


事件selectionchanged从未触发。触发了事件SelectionChangeing,但在newSelection中它的值不正确。虽然文档对此没有我认为的那么清楚,但您需要将tapBehavior属性设置为toggleSelect,以便完全选中某个项目。默认情况下,该行为是调用的,因此不会完全选择该项。它单击,但未被选中

MSDN中有一个不错的例子

如果存储listViewBoxOffice实例的副本,则可以从事件中通过承诺获取当前列表:

listViewBoxOffice.selection.getItems().done(function(items) {
    // do something with the items...
});

请尝试使用已调用的项。这是Msdn链接

并尝试相应地更改选择。
此外,如果这不起作用,或者您只想更改选择,请在您设计的模板中发布。将需要浏览整个代码:

以检查selectionchanged事件是否正常工作。我认为,当我们仅单击listview项目时,它需要iteminvoke事件,选择时,我们需要右键单击该项目。 下面是触发selectionchanged事件的代码snipet

 <div id="UserListView" data-win-control="WinJS.UI.ListView" style="border-top: 5px solid #000; min-width:500px;" 
           data-win-options="{
                               selectionMode:'multi',
                               itemTemplate:select('#itemsList'),
                               layout:{    
                               type:WinJS.UI.GridLayout}}"
         > 

    </div>
设置断点,您可以在evt中签入type=selectionchanged

 <div id="UserListView" data-win-control="WinJS.UI.ListView" style="border-top: 5px solid #000; min-width:500px;" 
           data-win-options="{
                               selectionMode:'multi',
                               itemTemplate:select('#itemsList'),
                               layout:{    
                               type:WinJS.UI.GridLayout}}"
         > 

    </div>
 UserListView.addEventListener("selectionchanged", selection);

function selection(evt) {
        var test = "testing";


    }