0

我正在尝试为 Windows 8 创建一个简单的 HTML Metro App。我想显示一个列表视图,并根据单击的项目在屏幕上显示不同的内容。这听起来微不足道,对吧?但它不起作用!这是我的代码:

<div  id="frameListViewTemplate"  data-win-control="WinJS.Binding.Template">
   <img data-win-bind="src: picture" class="thumbnail" />
</div>
<div id="basicListView" data-win-control="WinJS.UI.ListView" 
    data-win-options="{itemDataSource : DataExample.itemList.dataSource, itemTemplate: select('#frameListViewTemplate'),onselectionchanged : handler}">
</div>

比在 defult.js 中

var myListView = document.getElementById("basicListView").winControl;
myListView.addEventListener("selectionchanged", handler);

和处理程序:

function handler() {
console.log("Inside the handler  : ");
}
handler.supportedForProcessing = true;

所以处理程序永远不会被调用。我的问题是:如何将事件侦听器及其处理程序添加到 listview 控件。如何识别单击了列表视图中的哪个元素。

PS列表视图在我的应用程序中正确显示。谢谢你的帮助,J

4

1 回答 1

2

要获取被“点击”的项目,您需要使用 itemInvoked。当用户在项目上交叉滑动以选择它而不是点击/单击以“调用”它时,将发生选择更改。

http://msdn.microsoft.com/en-us/library/windows/apps/br211827.aspx有一些基本的细节。

于 2012-07-27T21:21:36.817 回答