共用方式為


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

 

發行︰ 2016年4月

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

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

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

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

工作 詳細資訊
建立新的資料繫結控制項。

將現有控制項繫結至資料。
如何:將 WPF 控制項繫結至 Visual Studio 中的資料
建立可顯示父子關係中相關資料的控制項:當使用者選取某個控制項中的父資料記錄時,另一個控制項會顯示選取之記錄的相關子資料。 如何:在 WPF 應用程式中顯示相關的資料
建立「查閱資料表」(Lookup Table),其根據某個資料表中的外部索引鍵欄位值,顯示另一個資料表的資訊。 如何:利用 WPF 應用程式建立查閱資料表
將控制項繫結至資料庫中的圖片。 如何:從資料庫將控制項繫結至圖片

有效置放目標

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

產生的 XAML 和程式碼

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

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

資料來源 產生可將控制項繫結至資料來源的 XAML 產生可將資料填入資料來源的程式碼
資料集
實體資料模型
服務
物件

資料集

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

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

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

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

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

實體資料模型

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

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

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

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

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

  • 針對包含控制項的 Loaded 項目,建立 UI 事件處理常式。 事件處理常式會呼叫 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 控制項繫結到資料集
逐步解說:將 WPF 控制項繫結至 WCF 資料服務
逐步解說:顯示 WPF 應用程式中的相關資料
資料來源視窗
資料來源概觀