Listanézet létrehozása
A listanézetek egyetlen oszlopban (egymást követő sorrendben) jelenítik meg az adatokat. A listában megjelenő adatok egy .NET-tulajdonság vagy egy parancsfájl értékeként is megjeleníthetőek.
Listanézet megjelenítése
Az alábbi kimenet bemutatja, hogyan Windows PowerShell a System.Serviceprocess.Servicecontroller tulajdonságait? Displayproperty=A Get-Service parancsmag által visszaadott teljes név objektumok. Ebben a példában három objektumot adtunk vissza, amelyek mindegyikét üres sor választja el az előző objektumtól.
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
...
A listanézet meghatározása
Az alábbi XML-fájl a System.Serviceprocess.Servicecontroller több tulajdonságának megjelenítésére szolgáló listanézeti sémát mutatja be. Displayproperty=Fullname objektum. A listanézetben megjeleníteni kívánt egyes tulajdonságokat meg kell adnia.
<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>
Listanézet definiálásakor a következő XML-elemek használhatók:
A Nézet elem a listanézet szülőeleme. (Ez ugyanaz a szülőelem a tábla, a széles és az egyéni vezérlőnézetek számára.)
A Név elem határozza meg a nézet nevét. Ez az elem minden nézethez szükséges.
A ViewSelectedBy elem határozza meg a nézetet használatban lévő objektumokat. Ez az elem kötelező.
A GroupBy elem határozza meg, hogy mikor jelenik meg új objektumcsoport. Egy új csoport akkor kezdődik, amikor egy adott tulajdonság vagy szkript értéke megváltozik. Ez az elem nem kötelező.
A Vezérlők elem határozza meg a listanézet által definiált egyéni vezérlőket. A vezérlőkkel még jobban meghatározhatja az adatok megjelenítésének módját. Ez az elem nem kötelező. A nézeteket definiálhatja saját egyéni vezérlőivel, vagy használhat általános vezérlőket, amelyek a formázási fájl bármely nézete által használhatók. További információ az egyéni vezérlőkről: Egyéni vezérlők létrehozása.
A ListControl elem határozza meg, hogy mi jelenik meg a nézetben, és hogyan van formázva. A többi nézethez hasonlóan a listanézetek az objektumtulajdonságok vagy a szkript által létrehozott értékek értékeit is megjelenítik.
Az egyszerű listanézetet definiáló teljes formázási fájlra a Listanézet (Alapszintű) dokumentumban láthat példát.
Definíciók biztosítása a listanézethez
A listanézetek a ListControl elem gyermekelemei segítségével egy vagy több definíciót is nyújthatnak. A nézet általában csak egy definícióval fog tartalmazni. A következő példában a nézet egyetlen definíciót biztosít, amely a System.Diagnostics.Process több tulajdonságát jeleníti meg. Displayproperty=Fullname objektum. A listanézetek egy tulajdonság vagy egy szkript (a példában nem látható) értékét jelenítik meg.
<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>
A következő XML-elemek használhatók a listanézetek definícióinak meghatározására:
A ListControl elem és annak gyermekelemei határozzák meg, hogy mi jelenik meg a nézetben.
A ListEntries elem biztosítja a nézet definícióit. A legtöbb esetben a nézetnek csak egy definíciója van. Ez az elem kötelező.
A ListEntry elem a nézet definícióját tartalmazza. Legalább egy ListEntry szükséges; A felvehető elemek száma azonban nincs korlátozva. A legtöbb esetben a nézetnek csak egy definíciója van.
Az EntrySelectedBy elem határozza meg az adott definíció által megjelenített objektumokat. Ez az elem nem kötelező, és csak akkor szükséges, ha több ListEntry elemet határoz meg, amelyek különböző objektumokat jelenítnek meg.
A ListItems elem határozza meg azokat a tulajdonságokat és szkripteket, amelyeknek az értékei megjelennek a listanézet sorai között.
A ListItem elem egy olyan tulajdonságot vagy szkriptet ad meg, amelynek értéke megjelenik a listanézet egy sorában. A listanézetnek legalább egy tulajdonságot vagy szkriptet meg kell adnia. A megszabadható sorok száma nincs korlátozva.
A PropertyName elem határozza meg azt a tulajdonságot, amelynek értéke megjelenik a sorban. Meg kell adnia egy tulajdonságot vagy egy parancsfájlt, de mindkettőt nem.
A ScriptBlock elem határozza meg azt a szkriptet, amelynek értéke megjelenik a sorban. Meg kell adnia egy szkriptet vagy egy tulajdonságot, de mindkettőt nem.
A Label elem határozza meg a sor tulajdonság- vagy szkriptértékének bal oldali feliratát. Ez az elem nem kötelező. Ha nincs megadva címke, megjelenik a tulajdonság vagy a szkript neve. A teljes példát lásd: Listanézet (Címkék).
Az ItemSelectionCondition elem olyan feltételt ad meg, amely a sor megjelenítéséhez létezik. A feltételek listanézethez való hozzáadásával kapcsolatos további információkért lásd: Adatok megjelenítésére vonatkozó feltételek meghatározása. Ez az elem nem kötelező.
A FormatString elem egy mintát ad meg, amely a tulajdonság vagy szkript értékének megjelenítésére használható. Ez az elem nem kötelező.
Az egyszerű listanézetet definiáló teljes formázási fájlra a Listanézet (Alapszintű) dokumentumban láthat példát.
A listanézetet használ objektumok definiálása
Kétféleképpen határozhatja meg, hogy mely .NET-objektumok használják a listanézetet. A ViewSelectedBy elem használatával meghatározhatja a nézet összes definíciója által megjeleníthető objektumokat, vagy az EntrySelectedBy elemmel meghatározhatja, hogy mely objektumok jelennek meg a nézet egy adott definíciója által. A legtöbb esetben a nézet csak egy definícióval rendelkezik, ezért az objektumokat általában a ViewSelectedBy elem határozza meg.
Az alábbi példa bemutatja, hogyan definiálhatja a listanézet által megjelenített objektumokat a ViewSelectedBy és a TypeName elemek használatával. A megadható TypeName elemek száma nincs korlátozva, és a sorrendjük nem jelentős.
<View>
<Name>System.ServiceProcess.ServiceController</Name>
<ViewSelectedBy>
<TypeName>System.Diagnostics.Process</TypeName>
</ViewSelectedBy>
<ListControl>...</ListControl>
</View>
A következő XML-elemek segítségével adhatja meg a listanézet által használt objektumokat:
A ViewSelectedBy elem határozza meg, hogy a listanézet mely objektumokat jeleníti meg.
A TypeName elem határozza meg a nézet által megjelenített .NET-objektumot. A teljes .NET-típusnévre van szükség. A nézethez meg kell adnia legalább egy típust vagy kijelölési készletet, de nem adható meg maximális számú elem.
Egy teljes formázási fájlra a Listanézet (Alapszintű) dokumentumban láthat példát.
Az alábbi példa a ViewSelectedBy és selectionSetName elemeket használja. Olyan kijelölési halmazokat használjon, amelyekben több nézetben jelennek meg kapcsolódó objektumok, például amikor listanézetet és táblanézetet ad meg ugyanazokhoz az objektumokhoz. A kijelölési készletek létrehozásáról a Kijelölési készletek definiálása oldalon található további információ.
<View>
<Name>System.ServiceProcess.ServiceController</Name>
<ViewSelectedBy>
<SelectionSetName>.NET Type Set</SelectionSetName>
</ViewSelectedBy>
<ListControl>...</ListControl>
</View>
A következő XML-elemek segítségével adhatja meg a listanézet által használt objektumokat:
A ViewSelectedBy elem határozza meg, hogy a listanézet mely objektumokat jeleníti meg.
A SelectionSetName elem a nézet által megjeleníthető objektumok egy halmazát határozza meg. Meg kell adnia legalább egy kijelölési halmazt vagy típust a nézethez, de nem adható meg maximális számú elem.
Az alábbi példa bemutatja, hogyan definiálhatja a listanézet egy adott definíciója által megjelenített objektumokat az EntrySelectedBy elem használatával. Ezzel az elemmel megadhatja az objektum .NET-típusnevét, egy objektumválasztó készletet vagy egy kijelölési feltételt, amely meghatározza, hogy mikor használja a rendszer a definíciót. További információ a kiválasztási feltételek létrehozásáról: Adatkijelzési feltételek definiálása.
<ListEntry>
<EntrySelectedBy>
<TypeName>.NET Type</TypeName>
</EntrySelectedBy>
</ListEntry>
A következő XML-elemek segítségével adhatja meg a listanézet adott definíciója által használt objektumokat:
Az EntrySelectedBy elem határozza meg, hogy a definíció mely objektumokat jeleníti meg.
A TypeName elem határozza meg a definíció által megjelenített .NET-objektumot. Az elem használata esetén a teljes .NET-típusnévre van szükség. A definícióhoz meg kell adnia legalább egy típust, kijelölési halmazt vagy kiválasztási feltételt, de nem adható meg maximális számú elem.
A SelectionSetName elem (nem látható) olyan objektumokat ad meg, amelyek megjeleníthetőek ezzel a definícióval. A definícióhoz meg kell adnia legalább egy típust, kijelölési halmazt vagy kiválasztási feltételt, de nem adható meg maximális számú elem.
A SelectionCondition elem (nem látható) olyan feltételt ad meg, amely a definícióhoz használható. A definícióhoz meg kell adnia legalább egy típust, kijelölési halmazt vagy kiválasztási feltételt, de nem adható meg maximális számú elem. További információ a kiválasztási feltételek meghatározásáról: Adatkijelzési feltételek definiálása.
Objektumcsoportok megjelenítése listanézetben
A listanézetben megjelenített objektumok csoportokba sorolhatók. Ez nem jelenti azt, hogy csoportot kell definiálni, csak azt, Windows PowerShell a rendszer új csoportot kezd el, amikor egy adott tulajdonság vagy szkript értéke megváltozik. A következő példában egy új csoport lesz elindítva, amikor megváltozik a System.Serviceprocess.Servicecontroller.Servicetype tulajdonság értéke.
<GroupBy>
<Label>Service Type</Label>
<PropertyName>ServiceType</PropertyName>
</GroupBy>
A következő XML-elemek határozzák meg, hogy mikor elindul egy csoport:
A GroupBy elem határozza meg az új csoportot elindításakor és a csoport megjelenítésének mikéntje meghatározó tulajdonságot vagy szkriptet.
A PropertyName elem határozza meg azt a tulajdonságot, amely egy új csoportot kezd el, amikor megváltozik az értéke. Meg kell adnia egy tulajdonságot vagy szkriptet a csoport elindítani, de mindkettőt nem.
A ScriptBlock elem határozza meg azt a szkriptet, amely egy új csoportot kezd el, amikor megváltozik az értéke. A csoport indításhoz meg kell adnia egy parancsfájlt vagy tulajdonságot, de mindkettőt nem.
A Label elem definiál egy címkét, amely az egyes csoportok elején jelenik meg. Az elem által megadott szövegen kívül a Windows PowerShell megjeleníti az új csoportot aktiváló értéket, és egy üres sort ad hozzá a címke előtt és után. Ez az elem nem kötelező.
A CustomControl elem definiál egy vezérlőt, amely az adatok megjelenítésére használható. Ez az elem nem kötelező.
A CustomControlName elem egy közös vagy nézetvezérlőt ad meg, amely az adatok megjelenítésére használható. Ez az elem nem kötelező.
A csoportokat definiáló teljes formázási fájlra példát a Listanézet (GroupBy) (Listanézet (GroupBy) ) tartalmaz.
Formázási sztringek használata
A nézethez formázási sztringek is hozzáadhatóak az adatok megjelenítésének további meghatározásához. Az alábbi példa bemutatja, hogyan definiálhat formázási sztringet a tulajdonság StartTime
értékeként.
<ListItem>
<PropertyName>StartTime</PropertyName>
<FormatString>{0:MMM} {0:DD} {0:HH}:{0:MM}</FormatString>
</ListItem>
Formátumminta megadásához a következő XML-elemek használhatók:
A ListItem elem határozza meg a nézet által megjelenített adatokat.
A PropertyName elem határozza meg azt a tulajdonságot, amelynek az értékét a nézet megjeleníti. Meg kell adnia egy tulajdonságot vagy egy parancsfájlt, de mindkettőt nem.
A FormatString elem egy formátummintát határoz meg, amely meghatározza, hogy a tulajdonság vagy szkript értéke hogyan jelenik meg a nézetben.
A ScriptBlock elem (nem látható) határozza meg azt a szkriptet, amelynek az értékét a nézet megjeleníti. Meg kell adnia egy szkriptet vagy egy tulajdonságot, de mindkettőt nem.
A következő példában a metódust hívjuk meg a szkript ToString
értékének formázására. A szkriptek egy objektum bármely metódusát meg lehet hívni. Ezért ha egy objektum rendelkezik formázási paraméterekkel,például egy metódussal, a szkript ezt a metódust hívhatja meg a szkript kimeneti értékének ToString
formázásához.
<ListItem>
<ScriptBlock>
[String]::Format("{0,-10} {1,-8}", $_.LastWriteTime.ToString("d"), $_.LastWriteTime.ToString("t"))
</ScriptBlock>
</ListItem>
A metódus a következő XML-elemmel ToString
hívható meg:
A ListItem elem határozza meg a nézet által megjelenített adatokat.
A ScriptBlock elem (nem látható) határozza meg azt a szkriptet, amelynek az értékét a nézet megjeleníti. Meg kell adnia egy szkriptet vagy egy tulajdonságot, de mindkettőt nem.