2013-04-03 21 views
0

這裏我們去了,這是我的問題,我找不到任何解決方法。 ,我有此模板的問題我的GridView(用於數據綁定):WinJS在ListView中更改Speelicitem的模板元素

<div id="mytemplate" data-win-control="WinJS.Binding.Template"> 
    <div id="questions" class="tweet"> 
     <img src="#" style="-ms-grid-row-span: 2; width: 64px; height: 64px; margin-right: 10px;" data-win-bind="src:picture_url"> 
     <h2 style="width:auto;-ms-grid-column: 2; -ms-grid-column-span: 1; margin-left: 1px; margin-right: 0px; -ms-grid-row-span: 2;" data-win-bind="textContent:type"></h2> 
     <label id="answer" ">Message</label>    
     </div>  
</div> 

中的所有項目,我有消息作爲標籤 所以,當我點擊一個項目,在itemInvokedHandler(eventObject)傳遞功能,我做出了一個Flyout,其中包含一個輸入文本,我希望這個標籤將從Flyout的輸入文本字段中改變。那是什麼解決方案。 只是,我正在考慮將標籤標籤移動到模板外部,但它不合邏輯,因爲它需要每個項目的標籤。 任何建議或幫助將不勝感激。

回答

0

我認爲最好的選擇是使用MVVM方法:將每個項目綁定到一個實體,並讓該實體暴露一個名爲Text的可觀察屬性,將Flyout綁定到另一個可觀察屬性SelectedItem,該屬性將使用當前選定的項目進行更新並使用雙向綁定以在Flyout文本輸入更改時更新所選項目的Text屬性。如果你需要它,我博客約兩種方式綁定在這裏:http://codeworks.it/blog/?p=81

+0

想得很多了這個建議,這是非常有幫助的,我想MVVM但我太忙於understang新概念。我會測試一下。 – Brahim

+0

如果您有興趣,我已經創建了一個小MVVM框架:http://mvvmstack.codeplex.com/ – corcav

0

建議在彈出HTML中使用data-win-bind屬性。下面的代碼將在彈出

test.html: 
<div class="edit-item" data-win-control="WinJS.UI.Flyout"> 
     <input type="text" class="item-text" data-win-bind="value: title" /> 
     <input type="submit" class="submit" /> 
</div> 

test.js: event handler for iteminvoked event for the listview control 
_oniteminvoked: function oniteminvoked(event) 
{ 
    var item = this.items.getAt(event.detail.itemIndex); // assuming items is the list binding to the list view 
    var editItemFlyoutElement = this.element.querySelector('.edit-item'); 
    WinJS.Binding.processAll(editItemFlyoutElement, item); 
    editItemFlyoutElement.winControl.show(this.element); 
} 

心連心顯示在輸入元素item.title財產

相關問題