2011-06-10 127 views
1

我正在使用綁定到可觀察集合的業務對象的silverlight數據網格。 我們不支持網格內對象的內聯編輯,但我們確實爲用戶選擇的行顯示了相應的編輯面板。 當用戶從此面板提交編輯時,我堅持在數據庫中進行更改,但我希望更改也反映在網格中。從集合中檢索/更新對象的最有效方法?

我知道通過使用可觀察的集合和通知屬性改變了如果我改變所選行被綁定的對象,這些改變將顯示在網格中。

但是,由於我不是內聯編輯,我需要搜索該對象的可觀察集合並對可觀察集合中的業務對象實例進行更改。

我想避免必須通過集合來查找所述對象,但我擔心這是唯一真正的方法。 沒有其他更有效率,更少性能的方式,我不知道從集合中檢索對象是否正確?除了簡單地循環直到我擊中它?

+3

如何填充編輯面板?你不能只是維護一個引用面板中顯示的任何對象嗎? – 2011-06-10 18:02:51

+1

如果它與wpf類似,則將所編輯對象的字段綁定到編輯控件。 – 2011-06-10 18:03:18

回答

2

您可以將編輯網格綁定到顯示網格的選定項目嗎?由於它們是引用,因此會將更改推送到可觀察集合中,然後可以將其保留下來。

+0

可能...我會給你一個鏡頭。 你可以綁定到多個單個選定的項目嗎?綁定會更新所有行嗎? – 2011-06-10 18:06:04

+0

取決於您在數據網格上綁定的屬性。有一個SelectedItem屬性是一個DataGridrow,還有一個SelectedItems集合,它是datagridrows的集合。從那裏你可以得到綁定的對象,如果需要的話。 – Bueller 2011-06-10 18:09:38

+0

我們這樣做的方式是編輯面板是完全動態的。它只是一個用戶控件模板(標籤+文本框,標籤+ datetimepicker等)隨時填充的列表框,因此我即時創建這些模板,我可以設置其文本框或datetimepicker的綁定,但那麼我怎麼綁定選定的行的對象?以某種方式將它綁定到包含所有控件的列表框? – 2011-06-10 18:23:02

0

在發生了一些嚴重的例外情況後,我無法跟蹤我決定避免將數據綁定到編輯面板並按照Jeffrey L Whitledge的建議進行操作。 我維護對面板中顯示的對象的引用,並通知更改,當我提交更新面板,我堅持對業務對象的更改,我設置更改爲網格行對象界。

thx guys

相關問題