清單檢視會以單一數據行顯示資料(循序順序)。 清單中顯示的數據可以是 .NET 屬性的值或腳本的值。
清單檢視顯示
下列輸出顯示 Windows PowerShell 如何顯示 System.ServiceProcess.ServiceController 的屬性, 由 get-Service Cmdlet 所傳回 物件。 在此範例中,會傳回三個物件,每個物件都以空白行分隔與上述物件。
Get-Service | Format-List
Name : AEADIFilters
DisplayName : Andrea ADI Filters Service
Status : Running
DependentServices : {}
ServicesDependedOn : {}
CanPauseAndContinue : False
CanShutdown : False
CanStop : True
ServiceType : Win32OwnProcess
Name : AeLookupSvc
DisplayName : Application Experience
Status : Running
DependentServices : {}
ServicesDependedOn : {}
CanPauseAndContinue : False
CanShutdown : False
CanStop : True
ServiceType : Win32ShareProcess
Name : AgereModemAudio
DisplayName : Agere Modem Call Progress Audio
Status : Running
DependentServices : {}
ServicesDependedOn : {}
CanPauseAndContinue : False
CanShutdown : False
CanStop : True
ServiceType : Win32OwnProcess
...
定義清單檢視
下列 XML 顯示列表檢視架構,以顯示 System.ServiceProcess.ServiceController 對象的數個屬性。 您必須指定清單檢視中顯示的每個屬性。
<View>
<Name>System.ServiceProcess.ServiceController</Name>
<ViewSelectedBy>
<TypeName>System.ServiceProcess.ServiceController</TypeName>
</ViewSelectedBy>
<ListControl>
<ListEntries>
<ListEntry>
<ListItems>
<ListItem>
<PropertyName>Name</PropertyName>
</ListItem>
<ListItem>
<PropertyName>DisplayName</PropertyName>
</ListItem>
<ListItem>
<PropertyName>Status</PropertyName>
</ListItem>
<ListItem>
<PropertyName>ServiceType</PropertyName>
</ListItem>
</ListItems>
</ListEntry>
</ListEntries>
</ListControl>
</View>
下列 XML 元素可用來定義清單檢視:
View 元素是清單檢視的父元素。 (這是數據表、寬和自定義控件檢視的相同父元素。
Name 專案會指定檢視的名稱。 所有檢視都需要此元素。
ViewSelectedBy 元素會定義使用檢視的物件。 這個元素是必要的。
GroupBy 元素會在顯示新的物件群組時定義。 每當特定屬性或腳本的值變更時,就會啟動新的群組。 這是選擇性的項目。
Controls 元素會定義清單檢視所定義的自定義控件。 控制項可讓您進一步指定資料的顯示方式。 這是選擇性的項目。 檢視可以定義自己的自定義控件,也可以使用格式化檔案中任何檢視可以使用的通用控件。 如需自訂控制元件的詳細資訊,請參閱 建立自定義控制項。
ListControl 元素會定義檢視中顯示的內容及其格式化方式。 與所有其他檢視類似,清單檢視可以顯示腳本所產生的物件屬性或值的值。
如需定義簡單清單檢視的完整格式化檔案範例,請參閱 清單檢視 (基本)。
提供清單檢視的定義
清單檢視可以使用 ListControl 元素的子元素來提供一或多個定義。 一般而言,檢視只會有一個定義。 在下列範例中,檢視會提供單一定義,以顯示 System.Diagnostics.Process 對象的數個屬性。 清單檢視可以顯示屬性的值或腳本的值(如範例中未顯示)。
<ListControl>
<ListEntries>
<ListEntry>
<ListItems>
<ListItem>
<PropertyName>Name</PropertyName>
</ListItem>
<ListItem>
<PropertyName>DisplayName</PropertyName>
</ListItem>
<ListItem>
<PropertyName>Status</PropertyName>
</ListItem>
<ListItem>
<PropertyName>ServiceType</PropertyName>
</ListItem>
</ListItems>
</ListEntry>
</ListEntries>
</ListControl>
下列 XML 元素可用來提供清單檢視的定義:
ListControl 元素及其子元素會定義檢視中顯示的專案。
ListEntries 元素會提供檢視的定義。 在大部分情況下,檢視只會有一個定義。 這個元素是必要的。
ListEntry 元素會提供檢視的定義。 至少需要一個 ListEntry;不過,您可以新增的項目數目沒有上限。 在大部分情況下,檢視只會有一個定義。
EntrySelectedBy 元素會指定特定定義所顯示的物件。 這個元素是選擇性的,只有在您定義多個 ListEntry 顯示不同物件的元素時,才需要此元素。
ListItems 元素會指定屬性和腳本,其值會顯示在清單檢視的數據列中。
ListItem 元素會指定屬性或腳本,其值會顯示在清單檢視的數據列中。 清單檢視必須至少指定一個屬性或腳本。 可以指定的數據列數目沒有上限。
PropertyName 專案會指定其值顯示在數據列中的屬性。 您必須指定屬性或文稿,但無法同時指定兩者。
ScriptBlock 元素會指定其值顯示在數據列中的腳本。 您必須指定文稿或屬性,但無法同時指定兩者。
Label 元素會指定顯示在數據列中屬性或腳本值左邊的標籤。 這是選擇性的項目。 如果未指定標籤,則會顯示屬性的名稱或腳本。 如需完整範例,請參閱 清單檢視(卷標)。
ItemSelectionCondition 元素會指定必須存在才能顯示數據列的條件。 如需將條件新增至清單檢視的詳細資訊,請參閱 定義顯示資料的條件。 這是選擇性的項目。
FormatString 元素會指定用來顯示屬性或腳本值的模式。 這是選擇性的項目。
如需定義簡單清單檢視的完整格式化檔案範例,請參閱 清單檢視 (基本)。
定義使用清單檢視的物件
有兩種方式可以定義哪些 .NET 物件使用清單檢視。 您可以使用 ViewSelectedBy 元素來定義可由檢視的所有定義顯示的物件,也可以使用 EntrySelectedBy 元素來定義檢視的特定定義所顯示的物件。 在大部分情況下,檢視只有一個定義,因此物件通常是由 viewSelectedBy 元素 定義。
下列範例示範如何使用 viewSelectedBy 和 TypeName 元素,定義清單檢視所顯示的物件。 您可以指定 TypeName 元素的數目沒有限制,而且其順序並不重要。
<View>
<Name>System.ServiceProcess.ServiceController</Name>
<ViewSelectedBy>
<TypeName>System.Diagnostics.Process</TypeName>
</ViewSelectedBy>
<ListControl>...</ListControl>
</View>
下列 XML 元素可用來指定清單檢視所使用的物件:
ViewSelectedBy 元素會定義清單檢視所顯示的物件。
TypeName 專案會指定檢視所顯示的 .NET 物件。 需要完整的 .NET 類型名稱。 您必須為檢視指定至少一個類型或選取專案,但是沒有可以指定的元素數目上限。
如需完整格式檔案的範例,請參閱 清單檢視 (基本)。
下列範例使用 ViewSelectedBy 和 SelectionSetName 元素。 使用選取集,其中您有一組相關的物件,這些物件是使用多個檢視來顯示,例如當您定義清單檢視和相同對象的數據表檢視時。 如需如何建立選取集的詳細資訊,請參閱 定義選取集。
<View>
<Name>System.ServiceProcess.ServiceController</Name>
<ViewSelectedBy>
<SelectionSetName>.NET Type Set</SelectionSetName>
</ViewSelectedBy>
<ListControl>...</ListControl>
</View>
下列 XML 元素可用來指定清單檢視所使用的物件:
ViewSelectedBy 元素會定義清單檢視所顯示的物件。
SelectionSetName 元素會指定一組可由檢視顯示的物件。 您必須為檢視指定至少一個選取集或類型,但是沒有可以指定的元素數目上限。
下列範例示範如何使用 EntrySelectedBy 元素,定義清單檢視的特定定義所顯示的物件。 使用這個專案,您可以指定物件的 .NET 類型名稱、對象的選取集,或指定何時使用定義的選取條件。 如需如何建立選取條件的詳細資訊,請參閱 定義顯示資料的條件。
<ListEntry>
<EntrySelectedBy>
<TypeName>.NET Type</TypeName>
</EntrySelectedBy>
</ListEntry>
下列 XML 元素可用來指定清單檢視特定定義所使用的物件:
EntrySelectedBy 元素會定義定義所顯示的物件。
TypeName 專案會指定定義所顯示的 .NET 物件。 使用這個專案時,需要完整的 .NET 類型名稱。 您必須為定義指定至少一個類型、選取集或選取條件,但是沒有可以指定的元素數目上限。
SelectionSetName 專案 (未顯示) 會指定一組可由這個定義顯示的物件。 您必須為定義指定至少一個類型、選取集或選取條件,但是沒有可以指定的元素數目上限。
SelectionCondition 專案 (未顯示) 會指定必須存在才能使用此定義的條件。 您必須為定義指定至少一個類型、選取集或選取條件,但是沒有可以指定的元素數目上限。 如需定義選取條件的詳細資訊,請參閱 定義顯示資料的條件。
在清單檢視中顯示物件的群組
您可以將清單檢視所顯示的物件分隔成群組。 這並不表示您定義群組,只有 Windows PowerShell 會在特定屬性或腳本的值變更時啟動新的群組。 在下列範例中,每當 System.ServiceProcess.ServiceController.ServiceType 的值 屬性變更時,就會啟動新的群組。
<GroupBy>
<Label>Service Type</Label>
<PropertyName>ServiceType</PropertyName>
</GroupBy>
下列 XML 元素可用來定義何時啟動群組:
GroupBy 元素會定義啟動新群組的屬性或腳本,並定義群組的顯示方式。
PropertyName 元素會指定每當其值變更時啟動新群組的屬性。 您必須指定屬性或腳本來啟動群組,但無法同時指定這兩者。
ScriptBlock 元素會指定每當其值變更時啟動新群組的腳本。 您必須指定文稿或屬性來啟動群組,但無法同時指定這兩者。
Label 元素會定義在每個群組開頭顯示的標籤。 除了這個專案所指定的文字之外,Windows PowerShell 也會顯示觸發新群組的值,並在標籤前後新增空白行。 這是選擇性的項目。
CustomControl 元素會定義用來顯示數據的控件。 這是選擇性的項目。
CustomControlName 元素會指定用來顯示數據的通用或檢視控件。 這是選擇性的項目。
如需定義群組的完整格式化檔案範例,請參閱 清單檢視 (GroupBy)。
使用格式字串
格式化字串可以新增至檢視,以進一步定義數據的顯示方式。 下列範例示範如何為 StartTime 屬性的值定義格式字串。
<ListItem>
<PropertyName>StartTime</PropertyName>
<FormatString>{0:MMM} {0:DD} {0:HH}:{0:MM}</FormatString>
</ListItem>
下列 XML 元素可用來指定格式模式:
ListItem 元素會指定檢視所顯示的數據。
PropertyName 專案會指定檢視顯示其值的屬性。 您必須指定屬性或文稿,但無法同時指定兩者。
FormatString 專案會指定格式模式,定義屬性或腳本值在檢視中的顯示方式。
ScriptBlock 專案 (未顯示) 會指定檢視顯示其值的腳本。 您必須指定文稿或屬性,但無法同時指定兩者。
在下列範例中,會呼叫 ToString 方法來格式化腳本的值。 腳本可以呼叫 物件的任何方法。 因此,如果物件有方法,例如具有格式化參數的 ToString,腳本可以呼叫該方法來格式化腳本的輸出值。
<ListItem>
<ScriptBlock>
[string]::Format("{0,-10} {1,-8}", $_.LastWriteTime.ToString("d"), $_.LastWriteTime.ToString("t"))
</ScriptBlock>
</ListItem>
下列 XML 元素可用來呼叫 ToString 方法:
ListItem 元素會指定檢視所顯示的數據。
ScriptBlock 專案 (未顯示) 會指定檢視顯示其值的腳本。 您必須指定文稿或屬性,但無法同時指定兩者。