數據表檢視會在一或多個數據行中顯示數據。 數據表中的每個數據列都代表 .NET 物件,而數據表的每個數據行都代表對象的屬性或腳本值。 您可以定義資料表檢視,以顯示物件的所有屬性或對象的屬性子集。
數據表檢視顯示
下列範例示範 Windows PowerShell 如何顯示 System.ServiceProcess.ServiceController 物件,而此物件是由 Get-Service Cmdlet 所傳回。 針對這個物件,Windows PowerShell 已定義數據表檢視,以顯示 Status 屬性、Name 屬性(此屬性是 ServiceName 屬性的別名屬性),以及 DisplayName 屬性。 數據表中的每個數據列都代表 Cmdlet 所傳回的物件。
Status Name DisplayName
------ ---- -----------
Stopped AJRouter AllJoyn Router Service
Stopped ALG Application Layer Gateway Service
Stopped AppIDSvc Application Identity
Running Appinfo Application Information
定義數據表檢視
下列 XML 會顯示數據表檢視架構,以顯示 System.ServiceProcess.ServiceController 物件。 您必須指定資料表檢視中顯示的每個屬性。
<View>
<Name>service</Name>
<ViewSelectedBy>
<TypeName>System.ServiceProcess.ServiceController</TypeName>
</ViewSelectedBy>
<TableControl>
<TableHeaders>
<TableColumnHeader>
<Width>8</Width>
</TableColumnHeader>
<TableColumnHeader>
<Width>18</Width>
</TableColumnHeader>
<TableColumnHeader>
<Width>38</Width>
</TableColumnHeader>
</TableHeaders>
<TableRowEntries>
<TableRowEntry>
<TableColumnItems>
<TableColumnItem>
<PropertyName>Status</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Name</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>DisplayName</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
</TableControl>
</View>
下列 XML 元素可用來定義清單檢視:
View 元素是數據表檢視的父元素。 (這是清單、寬和自定義控件檢視的相同父元素。
Name 專案會指定檢視的名稱。 所有檢視都需要此元素。
ViewSelectedBy 元素會定義使用檢視的物件。 這個元素是必要的。
GroupBy 專案(在此範例中未顯示)定義何時顯示新的物件群組。 每當特定屬性或腳本的值變更時,就會啟動新的群組。 這是選擇性的項目。
Controls 專案 (本範例中未顯示) 會定義數據表檢視所定義的自定義控制項。 控制項可讓您進一步指定資料的顯示方式。 這是選擇性的項目。 檢視可以定義自己的自定義控件,也可以使用格式化檔案中任何檢視可以使用的通用控件。 如需自訂控制元件的詳細資訊,請參閱 建立自定義控制項。
HideTableHeaders 專案 (在此範例中未顯示) 指定資料表不會在資料表頂端顯示任何標籤。 這是選擇性的項目。
TableControl 元素,可定義數據表的標頭和數據列資訊。 與所有其他檢視類似,數據表檢視可以顯示腳本所產生的物件屬性或值的值。
定義數據行標頭
TableHeaders 專案及其子元素會定義數據表頂端所顯示的內容。
TableColumnHeader 元素會定義數據表數據行頂端所顯示的內容。 依照您想要顯示標頭的順序來指定這些專案。
您可以使用的元素數目沒有限制,但是數據表檢視中 TableColumnHeader 元素的數目必須等於您使用的 tableRowEntry 元素 數目。
Label 專案會指定顯示的文字。 這是選擇性的項目。
Width 元素會指定數據行的寬度(以字元為單位)。 這是選擇性的項目。
Alignment 元素會指定標籤的顯示方式。 卷標可以靠左對齊、靠右對齊或置中。 這是選擇性的項目。
定義數據表數據列
數據表檢視可以提供一或多個定義,以使用 tableRowEntries 元素的子元素,指定數據表數據列中顯示的數據。 請注意,您可以為數據表的數據列指定多個定義,但不論使用何種數據列定義,數據列的標頭都會維持不變。 一般而言,數據表只會有一個定義。
在下列範例中,檢視會提供單一定義,以顯示 System.Diagnostics.Process 對象的數個屬性值。 數據表檢視可以在其數據列中顯示屬性值或腳本的值(未顯示在範例中)。
<TableRowEntries>
<TableRowEntry>
<TableColumnItems>
<TableColumnItem>
<PropertyName>Status</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Name</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>DisplayName</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
下列 XML 元素可用來提供資料列的定義:
TableRowEntries 專案及其子元素會定義數據表數據列中所顯示的內容。
TableRowEntry 元素會提供數據列的定義。 至少需要一個 TableRowEntry;不過,您可以新增的項目數目沒有上限。 在大部分情況下,檢視只會有一個定義。
EntrySelectedBy 元素會指定特定定義所顯示的物件。 這個元素是選擇性的,只有在您定義多個 TableRowEntry 顯示不同對象的元素時,才需要此元素。
Wrap 元素會指定超過欄寬的文字會顯示在下一行。 根據預設,超過數據行寬度的文字會被截斷。
TableColumnItems 元素會定義其值顯示在數據列中的屬性或腳本。
TableColumnItem 元素會定義屬性或腳本,其值會顯示在數據列的數據行中。 數據列的每個數據行都需要 TableColumnItem 元素。 第一個項目會顯示在第一欄、第二欄的第二個專案等等。
PropertyName 專案會指定其值顯示在數據列中的屬性。 您必須指定屬性或文稿,但無法同時指定兩者。
ScriptBlock 元素會指定其值顯示在數據列中的腳本。 您必須指定文稿或屬性,但無法同時指定兩者。
FormatString 元素會指定格式模式,以定義屬性或腳本值的顯示方式。 這是選擇性的項目。
Alignment 元素會指定如何顯示屬性或腳本的值。 值可以靠左對齊、靠右對齊或置中。 這是選擇性的項目。
定義使用數據表檢視的物件
有兩種方式可以定義哪些 .NET 物件使用數據表檢視。 您可以使用 ViewSelectedBy 元素來定義可由檢視的所有定義顯示的物件,也可以使用 EntrySelectedBy 元素來定義檢視的特定定義所顯示的物件。 在大部分情況下,檢視只有一個定義,因此物件通常是由 viewSelectedBy 元素 定義。
下列範例示範如何使用 ViewSelectedBy 和 TypeName 元素,定義數據表檢視所顯示的物件。 您可以指定 TypeName 元素的數目沒有限制,而且其順序並不重要。
<View>
<Name>System.ServiceProcess.ServiceController</Name>
<ViewSelectedBy>
<TypeName>System.ServiceProcess.ServiceController</TypeName>
</ViewSelectedBy>
<TableControl>...</TableControl>
</View>
下列 XML 元素可用來指定資料表檢視所使用的物件:
ViewSelectedBy 元素會定義清單檢視所顯示的物件。
TypeName 專案會指定檢視所顯示的 .NET 物件。 需要完整的 .NET 類型名稱。 您必須為檢視指定至少一個類型或選取專案,但是沒有可以指定的元素數目上限。
下列範例使用 ViewSelectedBy 和 SelectionSetName 元素。 使用選取集,其中您有一組相關的物件,這些物件是使用多個檢視來顯示,例如當您定義清單檢視和相同對象的數據表檢視時。 如需如何建立選取集的詳細資訊,請參閱 定義選取集。
<View>
<Name>System.ServiceProcess.ServiceController</Name>
<ViewSelectedBy>
<SelectionSetName>.NET Type Set</SelectionSetName>
</ViewSelectedBy>
<TableControl>...</TableControl>
</View>
下列 XML 元素可用來指定清單檢視所使用的物件:
ViewSelectedBy 元素會定義清單檢視所顯示的物件。
SelectionSetName 元素會指定一組可由檢視顯示的物件。 您必須為檢視指定至少一個選取集或類型,但是沒有可以指定的元素數目上限。
下列範例示範如何使用 EntrySelectedBy 元素,定義數據表檢視的特定定義所顯示的物件。 使用這個專案,您可以指定物件的 .NET 類型名稱、對象的選取集,或指定何時使用定義的選取條件。 如需如何建立選取條件的詳細資訊,請參閱 定義顯示資料的條件。
備註
建立資料表檢視的多個定義時,您無法指定不同的數據行標頭。 您只能指定資料表數據列中所顯示的內容,例如顯示的物件。
<TableRowEntry>
<EntrySelectedBy>
<TypeName>.NET Type</TypeName>
</EntrySelectedBy>
</TableRowEntry>
下列 XML 元素可用來指定清單檢視特定定義所使用的物件:
EntrySelectedBy 元素會定義定義所顯示的物件。
TypeName 專案會指定定義所顯示的 .NET 物件。 使用這個專案時,需要完整的 .NET 類型名稱。 您必須為定義指定至少一個類型、選取集或選取條件,但是沒有可以指定的元素數目上限。
SelectionSetName 專案 (未顯示) 會指定一組可由這個定義顯示的物件。 您必須為定義指定至少一個類型、選取集或選取條件,但是沒有可以指定的元素數目上限。
SelectionCondition 專案 (未顯示) 會指定必須存在才能使用此定義的條件。 您必須為定義指定至少一個類型、選取集或選取條件,但是沒有可以指定的元素數目上限。 如需定義選取條件的詳細資訊,請參閱 定義顯示資料的條件。
使用格式字串
格式化字串可以新增至檢視,以進一步定義數據的顯示方式。 下列範例示範如何為 StartTime 屬性的值定義格式字串。
<TableColumnItem>
<PropertyName>StartTime</PropertyName>
<FormatString>{0:MMM} {0:DD} {0:HH}:{0:MM}</FormatString>
</TableColumnItem>
下列 XML 元素可用來指定格式模式:
TableColumnItem 元素會定義屬性或腳本,其值會顯示在數據列的數據行中。 數據列的每個數據行都需要 TableColumnItem 元素。 第一個項目會顯示在第一欄、第二欄的第二個專案等等。
PropertyName 專案會指定其值顯示在數據列中的屬性。 您必須指定屬性或文稿,但無法同時指定兩者。
FormatString 元素會指定格式模式,以定義屬性或腳本值的顯示方式。
在下列範例中,會呼叫 ToString 方法來格式化腳本的值。 腳本可以呼叫 物件的任何方法。 因此,如果物件有方法,例如具有格式化參數的 ToString,腳本可以呼叫該方法來格式化腳本的輸出值。
<ListItem>
<ScriptBlock>
[string]::Format("{0,-10} {1,-8}", $_.LastWriteTime.ToString("d"), $_.LastWriteTime.ToString("t"))
</ScriptBlock>
</ListItem>
下列 XML 元素可用來呼叫 ToString 方法:
TableColumnItem 元素會定義屬性或腳本,其值會顯示在數據列的數據行中。 數據列的每個數據行都需要 TableColumnItem 元素。 第一個項目會顯示在第一欄、第二欄的第二個專案等等。
ScriptBlock 元素會指定其值顯示在數據列中的腳本。 您必須指定文稿或屬性,但無法同時指定兩者。