2010-11-18 57 views
1

我有一個目前完全從XAML驅動的WPF應用程序。使用ObjectDataProviders對象從XAML綁定所有字段,datagrids的所有內容。我有一個DataAccessLayer(DAL)導入到項目中。使用ODP檢索數據的調用正被用於顯示數據全部正常工作。直接從XAML更新數據庫

是否可以使用XAL中直接存在的方法執行插入,更新和刪除操作?我試圖避免任何代碼隱藏在這裏,以保持UI獨立的實體。我無法找到任何清楚的例子,插入,更新,刪除這個。有什麼想法嗎?

回答

2

WPF和Xaml都沒有任何插入,更新和刪除的概念。數據綁定都與對象(或偶爾的XML)有關。一旦UI中的改變(例如,用戶在文本框中輸入值)被推入綁定對象中,數據綁定的工作就完成了。這取決於你如何處理數據。

不是說這對「沒有代碼隱藏」目標有任何障礙。通常的方法是在視圖(Xaml)和數據對象之間添加一個圖層,並將UI綁定到該圖層而不是基礎域模型。 (這個圖層通常被稱爲ViewModel,但您也可以通過Presenter等其他名稱來看到它,而這種整體模式被稱爲「分離顯示」。)

您可以在不需要代碼隱藏的情況下啓用操作是通過使用命令。您的中間層不會公開面向數據的屬性。它可以公開包含命令的屬性,並且可以將這些命令綁定到按鈕,超鏈接或菜單項。這不需要任何代碼隱藏 - 這只是Xaml中的綁定表達式。但是當你點擊按鈕時,viewmodel中的相關處理程序代碼就會運行。 (ICommand是一個非常簡單的接口來實現 - 一個按鈕只會調用Execute方法點擊後你就通常提供自己的 - 內置RoutedCommandRoutedUICommand不適合此方案。)

然後你可以插入/更新/刪除/任何你認爲合適的。