備註
類別 DataSet 和相關類別是 2000 年代初的舊版 .NET Framework 技術,可讓應用程式在應用程式與資料庫中斷連線時使用記憶體中的數據。 這些技術特別適用於可讓使用者修改數據並將變更保存回資料庫的應用程式。 雖然數據集是經過證實的成功技術,但新 .NET 應用程式的建議方法是使用 Entity Framework Core。 Entity Framework 提供更自然的方式,以表格式數據作為物件模型使用,而且具有更簡單的程序設計介面。
查閱表格一詞(有時稱為查閱系結)描述一個控件,該控件會根據另一個數據表中外鍵欄位的值,顯示一個數據表中的資訊。 您可以在資料來源視窗中,將父數據表或物件的主要節點拖曳到已經綁定至相關子數據表的欄或屬性的控件上,以建立查閱表格。
例如,請考慮銷售資料庫中 的 Orders 數據表。 數據表中的每個 Orders 記錄都包含 , CustomerID 指出哪些客戶下訂單。
CustomerID是指向Customers資料表中客戶記錄的外鍵。 當您從 Orders 資料表顯示訂單清單時,可能會想要顯示實際的客戶名稱,而不是 CustomerID。 因為客戶名稱位於數據表中 Customers ,因此您必須建立查閱表格以顯示客戶名稱。 查閱表格會使用 CustomerID 記錄中的 Orders 值來巡覽關聯性,並傳回客戶名稱。
若要建立查閱資料表
將下列其中一種資料來源類型與相關資料新增至您的專案:
數據集或實體數據模型。
WCF 數據服務、WCF 服務或 Web 服務。 如需詳細資訊,請參閱 如何:連線到服務中的數據。
物件。 如需詳細資訊,請參閱 在 Visual Studio 中繫結到物件。
備註
您必須先將兩個相關的數據表或對象作為項目的數據源存在,才能建立查閱表格。
開啟 WPF 設計工具,並確定設計工具包含作為 資料源視窗 中專案的有效置放目標的容器。
如需有效置放目標的詳細資訊,請參閱 將 WPF 控件系結至 Visual Studio 中的數據。
在 [ 數據] 選單上,按兩下 [ 顯示資料來源 ] 以開啟 [數據源] 視窗。
展開 [數據源] 視窗中的節點,直到您可以看到父數據表或對象和相關子數據表或對象為止。
備註
相關的子資料表或物件是顯示為父資料表或物件下可展開子節點的節點。
按一下子節點的下拉清單功能表,然後選取 [詳細資訊]。
展開子節點。
在子節點下,按一下子節點與父節點資料相關項目的下拉式清單。 (在上述範例中,這是 CustomerID 節點。選取下列其中一種支援查閱系結的控制項類型:
ComboBox
ListBox
列表檢視
備註
如果 ListBox 或 ListView 控制項未出現在清單中,您可以將這些控制項新增至清單。 如需詳細資訊,請參閱 從 [數據源] 視窗拖曳時設定要建立的控件。
衍生自 Selector的任何自定義控制件。
備註
如需如何將自定義控件新增至您可以在 [資料源 ] 視窗中為項目選取的控件清單的相關信息,請參閱 將自定義控件新增至 [數據源] 視窗。
將子節點從 [數據源] 視窗拖曳至 WPF 設計工具中的容器。 (在上述範例中,子節點是 Orders 節點。
Visual Studio 會產生 XAML,針對您拖曳的每個專案建立新的數據綁定控件。 XAML 也會為子數據表或物件新增 CollectionViewSource 至置放目標的資源。 對於某些數據源,Visual Studio 也會產生程序代碼,以將數據載入數據表或物件。 如需詳細資訊,請參閱 將 WPF 控件系結至 Visual Studio 中的數據。
將父節點從 [數據源] 視窗拖曳至您稍早建立的查閱系結控件。 (在上述範例中,父節點是 Customers 節點)。
Visual Studio 會在 控件上設定一些屬性,以設定查閱系結。 下表列出 Visual Studio 修改的屬性。 如有必要,您可以在 XAML 或 [屬性] 視窗中變更這些 屬性 。
房產 設定的說明 ItemsSource 這個屬性會指定用來取得控制項中所顯示數據的集合或系結。 Visual Studio 會將此屬性設定為您拖曳至控制項的父資料的CollectionViewSource。 DisplayMemberPath 這個屬性會指定 控件中顯示的數據項路徑。 Visual Studio 會將此屬性設定為父數據中的第一個數據行或屬性,在主鍵之後具有字串數據類型。
如果您想要在父資料中顯示不同的資料行或屬性,請將此屬性變更為不同屬性的路徑。SelectedValue Visual Studio 會將此屬性系結至您拖曳至設計工具的子資料的資料行或屬性。 這是父數據的外鍵。 SelectedValuePath Visual Studio 會將此屬性設定為子數據中作為連接父數據的外鍵的欄位或屬性的路徑。