共用方式為


將 WPF 控制項繫結至 Visual Studio 中的資料

您可以透過將資料繫結至 WPF 控制項,對應用程式的使用者顯示資料。 若要建立這些資料繫結控制項,您可以從 [資料來源] 視窗將項目拖曳至 Visual Studio 中的 WPF Designer。 本主題描述可用來建立資料繫結 WPF 應用程式的一些最常用工作、工具和類別。

如需如何在 Visual Studio 中建立資料繫結控制項的一般資訊,請參閱將控制項繫結至 Visual Studio 中的資料。 如需 WPF 資料繫結的詳細資訊,請參閱資料繫結概觀

將 WPF 控制項繫結至資料的相關工作

下表列出可透過從 [資料來源] 視窗將項目拖曳至 WPF Designer所完成的工作。

工作

詳細資訊

建立新的資料繫結控制項。

將現有控制項繫結至資料。

如何:將 WPF 控制項繫結至 Visual Studio 中的資料

建立可顯示父子關係中相關資料的控制項:當使用者選取某個控制項中的父資料記錄時,另一個控制項會顯示選取之記錄的相關子資料。

如何:在 WPF 應用程式中顯示相關的資料

建立「查閱資料表」(Lookup Table),其根據某個資料表中的外部索引鍵欄位值,顯示另一個資料表的資訊。

如何:利用 WPF 應用程式建立查閱資料表

將控制項繫結至資料庫中的圖片。

如何:從資料庫將控制項繫結至圖片

有效置放目標

[資料來源] 視窗中的項目只能拖曳至 WPF Designer中的有效置放目標。 有效置放目標有兩種:容器和控制項。 容器是通常會包含控制項的使用者介面項目。 例如,格線是容器,視窗也是容器。

產生的 XAML 和程式碼

當您從 [資料來源] 視窗將項目拖曳至 WPF Designer時,Visual Studio 會產生定義新資料繫結控制項 (或將現有控制項繫結至資料來源) 的 XAML。 對於某些資料來源,Visual Studio 也會在程式碼後置檔案中產生可將資料填入資料來源的程式碼。

下表列出 Visual Studio 針對 [資料來源] 視窗中的每種資料來源類型所產生的 XAML 和程式碼。

資料來源

產生可將控制項繫結至資料來源的 XAML

產生可將資料填入資料來源的程式碼

資料集

實體資料模型

服務

物件

資料集

當您從 [資料來源] 視窗將資料表或資料行拖曳至設計工具時,Visual Studio 會產生完成下列工作的 XAML:

  • 將資料集或新 CollectionViewSource 加入至拖曳目標容器的資源。 CollectionViewSource 物件可用來巡覽及顯示資料集中的資料。

  • 建立控制項的資料繫結。 如果您將項目拖曳至設計工具中的現有控制項,XAML 會將控制項繫結至項目。 如果您將項目拖曳至容器,XAML 會針對拖曳的項目建立所選取的控制項,並將控制項繫結至項目。 控制項是在新的 Grid 內建立。

Visual Studio 也會對程式碼後置檔案進行下列變更:

  • 針對包含控制項的 UI 項目,建立 Loaded 事件處理常式。 事件處理常式會將資料填入資料表,從容器的資源擷取 CollectionViewSource,然後讓第一個資料項目成為目前的項目。 如果 Loaded 事件處理常式已經存在,Visual Studio 便會將此程式碼加入至現有的事件處理常式。

實體資料模型

當您從 [資料來源] 視窗將實體或實體屬性拖曳至設計工具時,Visual Studio 會產生完成下列工作的 XAML:

  • 將新 CollectionViewSource 加入至拖曳目標容器的資源。 CollectionViewSource 物件可用來巡覽及顯示實體中的資料。

  • 建立控制項的資料繫結。 如果您將項目拖曳至設計工具中的現有控制項,XAML 會將控制項繫結至項目。 如果您將項目拖曳至容器,XAML 會針對拖曳的項目建立所選取的控制項,並將控制項繫結至項目。 控制項是在新的 Grid 內建立。

Visual Studio 也會對程式碼後置檔案進行下列變更:

  • 加入新方法,其針對您拖曳至設計工具的實體 (或包含拖曳至設計工具之屬性的實體),傳回查詢。 新方法的名稱為 GetEntityNameQuery,其中 EntityName 為實體的名稱。

  • 針對包含控制項的 UI 項目,建立 Loaded 事件處理常式。 事件處理常式會呼叫 GetEntityNameQuery 方法將資料填入實體,從容器的資源擷取 CollectionViewSource,然後讓第一個資料項目成為目前的項目。 如果 Loaded 事件處理常式已經存在,Visual Studio 便會將此程式碼加入至現有的事件處理常式。

服務

當您從 [資料來源] 視窗將服務物件或屬性拖曳至設計工具時,Visual Studio 會產生建立資料繫結控制項 (或將現有控制項繫結至物件或屬性) 的 XAML。 不過,Visual Studio 不會產生可將資料填入 Proxy 服務物件的程式碼。 您必須自行撰寫此程式碼。 如需示範這個作法的範例,請參閱逐步解說:將 WPF 控制項繫結至 WCF 資料服務

Visual Studio 會產生執行下列工作的 XAML:

  • 將新 CollectionViewSource 加入至拖曳目標容器的資源。 CollectionViewSource 物件可用來巡覽及顯示服務所傳回之物件中的資料。

  • 建立控制項的資料繫結。 如果您將項目拖曳至設計工具中的現有控制項,XAML 會將控制項繫結至項目。 如果您將項目拖曳至容器,XAML 會針對拖曳的項目建立所選取的控制項,並將控制項繫結至項目。 控制項是在新的 Grid 內建立。

物件

當您從 [資料來源] 視窗將物件或屬性拖曳至設計工具時,Visual Studio 會產生建立資料繫結控制項 (或將現有控制項繫結至物件或屬性) 的 XAML。 不過,Visual Studio 不會產生可將資料填入物件的程式碼。 您必須自行撰寫此程式碼。

注意事項注意事項

自訂類別必須是公用的,並具有預設的無參數建構函式。這些類別不能是在語法中包含「點」的巢狀類別。如需詳細資訊,請參閱 WPF 的 XAML 和自訂類別

Visual Studio 會產生執行下列工作的 XAML:

  • 將新 CollectionViewSource 加入至拖曳目標容器的資源。 CollectionViewSource 物件可用來巡覽及顯示物件中的資料。

  • 建立控制項的資料繫結。 如果您將項目拖曳至設計工具中的現有控制項,XAML 會將控制項繫結至項目。 如果您將項目拖曳至容器,XAML 會針對拖曳的項目建立所選取的控制項,並將控制項繫結至項目。 控制項是在新的 Grid 內建立。

請參閱

工作

如何:將 WPF 控制項繫結至 Visual Studio 中的資料

如何:利用 WPF 應用程式建立查閱資料表

如何:在 WPF 應用程式中顯示相關的資料

逐步解說:將 WPF 控制項繫結到資料集

逐步解說:將 WPF 控制項繫結至 WCF 資料服務

逐步解說:顯示 WPF 應用程式中的相關資料

參考

資料來源視窗

概念

資料來源概觀

其他資源

將 WPF 控制項繫結至實體資料模型