2012-05-11 10 views
3

私はリストビューを持っています。デフォルトでは、すべてのアイテムにitemInvokesingle-selectionが有効になっています。しかし、今度はの特定のアイテムのID「disableMe」に対してselectionitemInvoke(イベントとアニメーションの両方)を無効にしたいと思います。それを行う方法はありますか?または、グループ全体のイベントを無効にすることができます(リストビュー全体ではありません)。リストビュー内の特定のアイテムの選択とitemInvokeイベントを無効にする

答えて

4

私は自分自身の質問に答えるために、私は今日それを理解した。この問題の解決策がもっとある場合はアドバイスをお願いします。

メトロスタイルアプリケーションでは、通常、ListViewコントロールでの選択は、マウスでRight-Clickによって、またはタッチで小さな「ドラッグ」/「スワイプ」でトリガーできます。タッチ選択を無効にするには、その特定の項目のMSPointerDownイベントハンドラを上書きする必要があります。 「右クリック」の選択を無効にするには、その特定の項目のoncontextmenuイベントを上書きする必要があります。

あなたはJavascriptitemTemplateを作成している場合:

function listViewItemTemplate(item) { 
    // data has boolean properties called 'doNotSelectMe' and 'doNotInvokeMe' 
    var data = item.data._value; 

    var itemElement = document.createElement('div'); 
    var itemElement.id = 'testElement'; 

    if (data.doNotSelectMe) { 
     // disable mouse selection 
     itemElement.oncontextmenu = function (e) { e.stopPropagation(); }; 
     // disable touch selection 
     itemElement.addEventListener('MSPointerDown', function (e) { 
              e.stopPropagation(); 
            }); 
    } 

    if (data.doNotInvokeMe) { 
     //disable item invoke event 
     itemElement.onclick = function (e) { e.stopPropagation(); }; 
    } 

    return {element: itemElement} 

} 
+0

だから私は動的にテンプレートを選択しています: '要素= document.querySelector( "inputTemplate。");' 、その後、その後すぐにレンダリング新しいコンテナに:; '' element.winControl.render(currentItem.data、容器); 'VARコンテナ=のdocument.createElement( "DIV")' し、後でテスト項目が確実である場合タイプを入力してwhを実行するあなたが書いたとき、初めて働いた。ありがとう –

関連する問題