2012-08-14 50 views
0

我在使用createFiltered()創建的WinJS.Binding.List上使用實時篩選投影。強制重新評估活動篩選的IListDataSource

過濾器謂詞對由偵聽Windows.ApplicationModel.Search.SearchPane.getForCurrentView()。onquerysubmitted的事件處理程序設置的字符串變量進行操作。

如何在搜索字符串更改時觸發重新評估過濾投影?

回答

5

您需要更改謂詞過濾器用於檢查項目的變量,然後在源列表中調用notifyReload()。這裏是一個小的代碼片段演示:

var mainList = new WinJS.Binding.List(["one", "two", "three"]); 

    var filterString = "t"; 

    function filter(item) { 
     var result = item.indexOf(filterString) > -1; 
     console.log("Filter: " + item + " " + result); 
     return result; 
    }; 

    var filteredList = mainList.createFiltered(filter); 

    filterString = "e"; 
    mainList.notifyReload(); 

notifyReload被調用時,謂語將被重新應用到再生過濾列表中的內容。在這個片段中,調用console.log可以讓您看到如何重新應用過濾器。