リスト ビューを作成する
リスト ビューでは、データが 1 つの列に (順番に) 表示されます。 一覧に表示されるデータには、.NET プロパティの値またはスクリプトの値を指定できます。
リスト ビューの表示
次の出力は、Get-Service コマンドレットによって返される System.ServiceProcess.ServiceController オブジェクトのプロパティを Windows PowerShell で表示する方法を示しています。 この例では、3 つのオブジェクトが返され、各オブジェクトは前のオブジェクトから空白行で区切られます。
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 要素の子要素を使用して、1 つ以上の定義を提供できます。 通常、ビューの定義は 1 つだけです。 次の例では、System.Diagnostics.Process オブジェクトのいくつかのプロパティを表示する 1 つの定義が表示されます。 リスト ビューには、プロパティの値またはスクリプトの値を表示できます (例では示されていません)。
<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 要素は、ビューの定義を提供します。 ほとんどの場合、ビューの定義は 1 つだけです。 この要素は必須です。
ListEntry 要素は、ビューの定義を提供します。 少なくとも 1 つの ListEntry が必要です。ただし、追加できる要素の数に上限はありません。 ほとんどの場合、ビューの定義は 1 つだけです。
EntrySelectedBy 要素は、特定の定義によって表示されるオブジェクトを指定します。 この要素は省略可能であり、異なるオブジェクトを表示する複数の ListEntry 要素を定義する場合にのみ必要です。
ListItems 要素は、リスト ビューの行に値が表示されるプロパティとスクリプトを指定します。
ListItem 要素は、リスト ビューの行に値が表示されるプロパティまたはスクリプトを指定します。 リスト ビューでは、少なくとも 1 つのプロパティまたはスクリプトを指定する必要があります。 指定できる行数に上限はありません。
PropertyName 要素は、値が行に表示されるプロパティを指定します。 プロパティまたはスクリプトを指定する必要がありますが、両方を指定することはできません。
ScriptBlock 要素は、行に値が表示されるスクリプトを指定します。 スクリプトまたはプロパティを指定する必要がありますが、両方を指定することはできません。
Label 要素は、行のプロパティまたはスクリプト値の左側に表示されるラベルを指定します。 この要素は省略可能です。 ラベルが指定されていない場合は、プロパティまたはスクリプトの名前が表示されます。 完全な例については、「リスト ビュー (ラベル) を参照してください。
ItemSelectionCondition 要素は、行を表示するために存在する必要がある条件を指定します。 リスト ビューに条件を追加する方法の詳細については、「データを表示するための条件の定義」を参照してください。 この要素は省略可能です。
FormatString 要素は、プロパティまたはスクリプトの値を表示するために使用されるパターンを指定します。 この要素は省略可能です。
単純なリスト ビューを定義する完全な書式設定ファイルの例については、「リスト ビュー (基本)を参照してください。
リスト ビューを使用するオブジェクトの定義
リスト ビューを使用する .NET オブジェクトを定義するには、2 つの方法があります。 ViewSelectedBy 要素を使用して、ビューのすべての定義で表示できるオブジェクトを定義することも、EntrySelectedBy 要素を使用して、ビューの特定の定義によって表示されるオブジェクトを定義することもできます。 ほとんどの場合、ビューには定義が 1 つしかないため、オブジェクトは通常、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 型名が必要です。 ビューには少なくとも 1 つの型または選択セットを指定する必要がありますが、指定できる要素の最大数はありません。
完全な書式設定ファイルの例については、「リスト ビュー (基本) を参照してください。
次の例では、ViewSelectedBy を使用し、SelectionSetName 要素を します。 同じオブジェクトのリスト ビューとテーブル ビューを定義する場合など、複数のビューを使用して表示されるオブジェクトの関連セットがある場合は、選択セットを使用します。 選択セットを作成する方法の詳細については、「選択セット の定義を参照してください。
<View>
<Name>System.ServiceProcess.ServiceController</Name>
<ViewSelectedBy>
<SelectionSetName>.NET Type Set</SelectionSetName>
</ViewSelectedBy>
<ListControl>...</ListControl>
</View>
次の XML 要素を使用して、リスト ビューで使用されるオブジェクトを指定できます。
ViewSelectedBy 要素は、リスト ビューで表示されるオブジェクトを定義します。
SelectionSetName 要素は、ビューで表示できるオブジェクトのセットを指定します。 ビューには少なくとも 1 つの選択セットまたは種類を指定する必要がありますが、指定できる要素の最大数はありません。
次の例では、EntrySelectedBy 要素を使用して、リスト ビューの特定の定義によって表示されるオブジェクトを定義する方法を示します。 この要素を使用すると、オブジェクトの .NET 型名、オブジェクトの選択セット、または定義を使用するタイミングを指定する選択条件を指定できます。 選択条件の作成方法の詳細については、「データを表示するための条件の定義」を参照してください。
<ListEntry>
<EntrySelectedBy>
<TypeName>.NET Type</TypeName>
</EntrySelectedBy>
</ListEntry>
次の XML 要素を使用して、リスト ビューの特定の定義で使用されるオブジェクトを指定できます。
EntrySelectedBy 要素は、定義によって表示されるオブジェクトを定義します。
TypeName 要素は、定義によって表示される .NET オブジェクトを指定します。 この要素を使用する場合は、完全修飾 .NET 型名が必要です。 定義には少なくとも 1 つの型、選択セット、または選択条件を指定する必要がありますが、指定できる要素の最大数はありません。
SelectionSetName 要素 (表示されません) は、この定義で表示できるオブジェクトのセットを指定します。 定義には少なくとも 1 つの型、選択セット、または選択条件を指定する必要がありますが、指定できる要素の最大数はありません。
SelectionCondition 要素 (図示せず) は、この定義を使用するために存在する必要がある条件を指定します。 定義には少なくとも 1 つの型、選択セット、または選択条件を指定する必要がありますが、指定できる要素の最大数はありません。 選択条件の定義の詳細については、「データを表示するための条件の定義」を参照してください。
リスト ビューでのオブジェクトのグループの表示
リスト ビューによって表示されるオブジェクトをグループに分けることができます。 これは、グループを定義することを意味するわけではありません。特定のプロパティまたはスクリプトの値が変更されるたびに、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 要素 (表示されません) は、ビューによって値が表示されるスクリプトを指定します。 スクリプトまたはプロパティを指定する必要がありますが、両方を指定することはできません。
こちらもご覧ください
PowerShell