簡體   English   中英

將 ViewModel object 綁定到數據集

[英]Binding ViewModel object to dataset

我是 MVVM/WPF 的新手,並嘗試使用 MVVM 設計模式。 我參考本教程https://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewMode來使用 treeview 和數據庫。

我知道我可以更改 Treeview 選定的項目並參考它我也可以在數據庫中更改。 我不知道使用 treeview 和數據庫的正確方法是什么。

例如,我有數據庫

 ID Name
 1  A
 2  B

我使用 MVVM 在 treeview 中填充它

 A
 |- B

現在,將節點 B 重命名為 C。 我需要在數據庫中搜索 B 的 id 並重命名它。 這是處理我的想法的正確方法還是有更好的方法來實現它?

我知道我們可以像這篇文章一樣使用Binding TreeView to DataSet但它不使用 MVVM 並且無法應用 MVVM 的某些功能。

B 應該在一個屬於 A 的屬性的集合中。因此,一個人 A 有一個 children 集合,而 B 的一個實例在該集合中。

然后,分層數據模板將為您提供 B 作為 A 的子級。

當您將 A 重命名為 AA 或其他任何名稱時,B 仍在該子集合中。 無需更改任何內容。

盡管您可以使用數據集來訪問數據,但我認為實體框架會更簡單。 EF 可以為您提供已經在必要的層次結構中排列的數據 - 具有子屬性。 相反,數據集具有您需要使用的關系並自己構建集合。

以下是自引用鍵的示例:

https://www.sqlservertutorial.net/sql-server-basics/sql-server-self-join/#:~:text=SQL%20Server%20self%20join%20syntax&text=It%20is%20useful%20for%20querying,同%20table%20within%20the%20query

在那篇文章中,每個員工都有一個員工 ID。 經理 ID 引用員工經理的員工 ID。

通常在 rdbms 中處理這種關系的方式是使用自引用表。 因此,一張桌子的人將有一個 ID。 每個條目都有一個 ParentID。 這應該是自動生成的 integer。 如果您改為將其設為有意義的鍵並使用名稱,那么當有人更改名稱(可能結婚或離婚)時,則必須更改外鍵的值。 通過使用非自然和生成的密鑰,這是不必要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM