HTML and CSS Reference
In-Depth Information
var player = document.getElementById("player");
player.src =;
The iteminvoked event passes a detail object to handlers with an itemIndex property that simply
returns the 0-based index of the clicked item. It should be noted, though, that there's no guarantee
that the index really points to the clicked item.
In other words, you may think that, by knowing the index of the clicked item, you're pretty
much done and all that remains to do is select the corresponding object from the bound list.
Well, depending on the number of categories defined, and the distribution of video clips among
categories, the index you get may or may not match the displayed video clip. For example, you may
click with the intention of playing video ABC and receive an index of three. However, index three in
the bound list may not be video ABC.
The point is that you bind items in a given order, but then items are rearranged based on
categories. The index you receive refers to the rearranged order of items; not the original order. For
this reason, you need to resort to the itemPromise property:
eventInfo.detail.itemPromise.then(function (clip) {
// clip now matches the clicked item
The itemPromise property starts an internal search that uses the index as the key to locate the
bound item actually displayed in that position. Once the object has been found, the ListView returns
the object which can then be processed by your code.
playing YouTube video clips
In order to play YouTube videos from your page, you need an IFRAME element that embeds the clip.
So as a first step, you add the following markup to default.html :
<div id="player-container">
<iframe id="player" height="100%" width="100%" type="text/html"></iframe>
The IFRAME element misses the URL of the video. The URL is provided dynamically as the user
clicks a given item in the list view. Usually, the YouTube URL takes the following form:<id>
The id placeholder indicates the ID of the video. However, this approach just doesn't work in
Windows Store applications. The reason is that, by default in the IFRAME body, YouTube inserts a
Search WWH ::

Custom Search