Javascript 在windows 8中将从文件选择器拾取的文件定义为Listview数据源

Javascript 在windows 8中将从文件选择器拾取的文件定义为Listview数据源,javascript,listview,windows-8,winjs,Javascript,Listview,Windows 8,Winjs,我正在尝试设置使用filepiker作为列表视图数据源拾取的文件。 在Windows8中使用Javascript HTML: <div id="smallListIconTextTemplate" data-win-control="WinJS.Binding.Template"> <div class="smallListIconTextItem"> <img src="#" class="smallListIconTextItem-Ima

我正在尝试设置使用filepiker作为列表视图数据源拾取的文件。 在Windows8中使用Javascript

HTML:

<div id="smallListIconTextTemplate" data-win-control="WinJS.Binding.Template">
    <div class="smallListIconTextItem">
        <img src="#" class="smallListIconTextItem-Image" data-win-bind="src: picture" />
        <div class="smallListIconTextItem-Detail">
            <h3 data-win-bind="innerText: title"></h3>
            <h6 data-win-bind="innerText: text"></h6>
        </div>
    </div>
</div>

<div id="listView_Id" data-win-control="WinJS.UI.ListView" data-win-options="{
                    itemDataSource: FileData.itemList.dataSource,
                    itemTemplate: select('#smallListIconTextTemplate'),}">
var dataArray = new Array();
var openPicker = new Windows.Storage.Pickers.FileOpenPicker();                
openPicker.viewMode = Windows.Storage.Pickers.PickerViewMode.list;                
openPicker.fileTypeFilter.replaceAll([".epub"]);          
var file;
openPicker.pickMultipleFilesAsync().then(function (files) 
{        
    if (files.size > 0) 
    {            
        for (var i = 0; i < files.size; i++) 
        {         
       dataArray.push({                    
            title: files[i].displayName,                    
            text: "Author",                    
            picture: "/images/BookImage.jpg"                
        });                
            var dataList = new WinJS.Binding.List(dataArray);                
            var publicMembers = 
            {                    
                itemList: dataList                
            };                
            WinJS.Namespace.define("FileData", publicMembers);

JS:

<div id="smallListIconTextTemplate" data-win-control="WinJS.Binding.Template">
    <div class="smallListIconTextItem">
        <img src="#" class="smallListIconTextItem-Image" data-win-bind="src: picture" />
        <div class="smallListIconTextItem-Detail">
            <h3 data-win-bind="innerText: title"></h3>
            <h6 data-win-bind="innerText: text"></h6>
        </div>
    </div>
</div>

<div id="listView_Id" data-win-control="WinJS.UI.ListView" data-win-options="{
                    itemDataSource: FileData.itemList.dataSource,
                    itemTemplate: select('#smallListIconTextTemplate'),}">
var dataArray = new Array();
var openPicker = new Windows.Storage.Pickers.FileOpenPicker();                
openPicker.viewMode = Windows.Storage.Pickers.PickerViewMode.list;                
openPicker.fileTypeFilter.replaceAll([".epub"]);          
var file;
openPicker.pickMultipleFilesAsync().then(function (files) 
{        
    if (files.size > 0) 
    {            
        for (var i = 0; i < files.size; i++) 
        {         
       dataArray.push({                    
            title: files[i].displayName,                    
            text: "Author",                    
            picture: "/images/BookImage.jpg"                
        });                
            var dataList = new WinJS.Binding.List(dataArray);                
            var publicMembers = 
            {                    
                itemList: dataList                
            };                
            WinJS.Namespace.define("FileData", publicMembers);
var dataArray=new Array();
var openPicker=new Windows.Storage.Pickers.FileOpenPicker();
openPicker.viewMode=Windows.Storage.Pickers.PickerViewMode.list;
openPicker.fileTypeFilter.replaceAll([“.epub]”);
var文件;
openPicker.PickMultipleFileAsync().then(函数(文件)
{        
如果(files.size>0)
{            
对于(var i=0;i

我有一个包含文件数据的数组。但无法进入ListView,代码中存在绑定问题。FileData.itemList在页面ui初始化时未初始化。正确的方法是使用
itemList
成员创建一个视图模型可观察类,并将其绑定到DOM。可能会有所帮助

否则,这应该可以让它工作。你可能必须修复你的模板,以获得正确的显示

listView_Id.winControl.itemDataSource = dataList.dataSource;

谢谢你的回答。这是我根据建议更改的代码[]。你可以查看任何更改。