Megosztás a következőn keresztül:


Listanézet létrehozása

A listanézetek egyetlen oszlopban (szekvenciális sorrendben) jelenítik meg az adatokat. A listában megjelenített adatok lehetnek egy .NET-tulajdonság vagy egy szkript értéke.

Listanézet megjelenítése

Az alábbi kimenet azt mutatja be, hogy a Windows PowerShell hogyan jeleníti meg System.ServiceProcess.ServiceController objektum tulajdonságait, amelyeket a Get-Service parancsmag ad vissza. Ebben a példában három objektumot adtunk vissza, mindegyik objektumot egy ü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 definiálása

Az alábbi XML a System.ServiceProcess.ServiceController objektum több tulajdonságának megjelenítésére szolgáló listanézet-sémát mutatja. Meg kell adnia a listanézetben megjeleníteni kívánt összes tulajdonságot.

<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>

A listanézet meghatározásához 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áblázat, a széles és az egyéni vezérlőnézetekhez.)

  • 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áló objektumokat. Ez az elem szükséges.

  • A GroupBy elem határozza meg, hogy mikor jelenjen meg új objektumcsoport. Egy új csoport akkor indul el, 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ők lehetővé teszik az adatok megjelenítésének további megadását. Ez az elem nem kötelező. Egy nézet definiálhatja saját egyéni vezérlőit, vagy használhat olyan gyakori vezérlőket, amelyeket a formázási fájl bármely nézete használhat. 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 jelenjen meg a nézetben, és hogyan formázza. Az összes többi nézethez hasonlóan a listanézetek is megjeleníthetik a szkript által létrehozott objektumtulajdonságok vagy értékek értékeit.

Egy egyszerű listanézetet definiáló teljes formázási fájlra példa: Listanézet (Alapszintű).

Definíciók megadása a listanézethez

A listanézetek a ListControl elem gyermekelemeinek használatával adhatnak meg egy vagy több definíciót. Egy nézet általában csak egy definícióval rendelkezik. A következő példában a nézet egyetlen definíciót biztosít, amely a System.Diagnostics.Process objektum több tulajdonságát jeleníti meg. A listanézetek megjeleníthetik egy tulajdonság vagy egy szkript értékét (a példában nem látható).

<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 listanézet definícióinak megadásához a következő XML-elemek használhatók:

  • A ListControl elem és gyermekelemei határozzák meg, hogy mi jelenjen meg a nézetben.

  • A ListEntries elem adja meg a nézet definícióit. A legtöbb esetben egy nézetnek csak egy definíciója lesz. Ez az elem szükséges.

  • A ListEntry elem határozza meg a nézetet. Legalább egy ListEntry szükséges; azonban nincs maximális korlátja a felvehető elemek számának. A legtöbb esetben egy nézetnek csak egy definíciója lesz.

  • A EntrySelectedBy elem egy adott definíció által megjelenített objektumokat adja meg. Ez az elem nem kötelező, és csak akkor szükséges, ha több ListEntry különböző objektumokat megjelenítő elemeket definiál.

  • A ListItems elem határozza meg azokat a tulajdonságokat és szkripteket, amelyek értékei a listanézet soraiban jelennek meg.

  • A ListItem elem olyan tulajdonságot vagy szkriptet határoz meg, amelynek értéke a listanézet egy sorában jelenik meg. A listanézetnek legalább egy tulajdonságot vagy szkriptet meg kell adnia. A megadható sorok számának nincs maximális korlátja.

  • A PropertyName elem határozza meg azt a tulajdonságot, amelynek értéke megjelenik a sorban. Meg kell adnia egy tulajdonságot vagy egy szkriptet, 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 Címke elem határozza meg azt a címkét, amely a sor tulajdonságának vagy szkriptértékének bal oldalán jelenik meg. Ez az elem nem kötelező. Ha nincs megadva címke, megjelenik a tulajdonság vagy a szkript neve. Egy teljes példát Listanézet (Címkék)című témakörben talál.

  • Az ItemSelectionCondition elem egy feltételt határoz meg, amely a sor megjelenítéséhez szükséges. További információ a feltételek listanézethez való hozzáadásáról: Adatmegjelenítési feltételek meghatározása. Ez az elem nem kötelező.

  • A FormatString elem egy olyan mintát határoz meg, amely a tulajdonság vagy szkript értékének megjelenítésére szolgál. Ez az elem nem kötelező.

Egy egyszerű listanézetet definiáló teljes formázási fájlra példa: Listanézet (Alapszintű).

A listanézetet használó objektumok meghatározása

Kétféleképpen határozhatja meg, hogy mely .NET-objektumok használják a listanézetet. A ViewSelectedBy elem használatával definiálhatja a nézet összes definíciója által megjeleníthető objektumokat, vagy a EntrySelectedBy elem használatával meghatározhatja, hogy mely objektumok jelenjenek meg a nézet adott definíciója alapján. A legtöbb esetben egy nézetnek csak egy definíciója van, 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 TypeName elemekkel. Nincs korlátozva a megadható TypeName elemek száma, és a sorrendjük nem jelentős.

<View>
  <Name>System.ServiceProcess.ServiceController</Name>
  <ViewSelectedBy>
    <TypeName>System.Diagnostics.Process</TypeName>
  </ViewSelectedBy>
  <ListControl>...</ListControl>
</View>

A listanézet által használt objektumok megadásához a következő XML-elemek használhatók:

  • 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év megadása kötelező. A nézethez legalább egy típust vagy kijelölési csoportot meg kell adnia, de nem adható meg maximális számú elem.

Egy teljes formázási fájlra példa: Listanézet (Alapszintű).

Az alábbi példa a ViewSelectedBy és SelectionSetName elemeket használja. Olyan kijelölési csoportokat használjon, amelyekhez több nézettel megjelenített kapcsolódó objektumkészlet tartozik, például amikor egy listanézetet és egy táblázatnézetet határoz meg ugyanazon objektumokhoz. További információ a kijelölési csoportok létrehozásáról: Kijelöléskészletek definiálása.

<View>
  <Name>System.ServiceProcess.ServiceController</Name>
  <ViewSelectedBy>
    <SelectionSetName>.NET Type Set</SelectionSetName>
  </ViewSelectedBy>
  <ListControl>...</ListControl>
</View>

A listanézet által használt objektumok megadásához a következő XML-elemek használhatók:

  • 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 készletét adja meg. Meg kell adnia legalább egy kijelölési csoportot vagy típust a nézethez, de nincs megadva maximális számú elem.

Az alábbi példa bemutatja, hogyan definiálhatja a listanézet adott definíciója által megjelenített objektumokat a EntrySelectedBy elem használatával. Ezzel az elemet használva megadhatja az objektum .NET-típusnevét, az objektumok kijelölési készletét vagy a definíció használatát meghatározó kijelölési feltételt. További információ a kijelölési feltételek létrehozásáról: Adatmegjelenítési feltételek meghatározása.

<ListEntry>
  <EntrySelectedBy>
    <TypeName>.NET Type</TypeName>
  </EntrySelectedBy>
</ListEntry>

A listanézet adott definíciója által használt objektumok megadásához a következő XML-elemek használhatók:

  • A 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álatakor szükség van a teljes .NET-típusnévre. Meg kell adnia legalább egy típust, kijelölési csoportot vagy kijelölési feltételt a definícióhoz, de nem adható meg maximális számú elem.

  • A SelectionSetName elem (nem jelenik meg) a definíció által megjeleníthető objektumok készletét adja meg. Meg kell adnia legalább egy típust, kijelölési csoportot vagy kijelölési feltételt a definícióhoz, de nem adható meg maximális számú elem.

  • A SelectionCondition elem (nem jelenik meg) egy feltételt határoz meg, amely a definíció használatához szükséges. Meg kell adnia legalább egy típust, kijelölési csoportot vagy kijelölési feltételt a definícióhoz, de nem adható meg maximális számú elem. A kiválasztási feltételek meghatározásáról további információt Az adatok megjelenítésének feltételeinek meghatározásacímű témakörben talál.

Objektumcsoportok megjelenítése listanézetben

A listanézet által megjelenített objektumokat csoportokra bonthatja. Ez nem jelenti azt, hogy definiál egy csoportot, csak azt, hogy a Windows PowerShell egy új csoportot indít el, amikor egy adott tulajdonság vagy szkript értéke megváltozik. Az alábbi példában egy új csoport indul el, amikor a System.ServiceProcess.ServiceController.ServiceType tulajdonság értéke megváltozik tulajdonság.

<GroupBy>
  <Label>Service Type</Label>
  <PropertyName>ServiceType</PropertyName>
</GroupBy>

A következő XML-elemek határozzák meg, hogy mikor indul el egy csoport:

  • A GroupBy elem határozza meg az új csoportot kezdő tulajdonságot vagy szkriptet, és meghatározza a csoport megjelenítésének módját.

  • A PropertyName elem határozza meg azt a tulajdonságot, amely az érték változásakor új csoportot indít el. A csoport indításához meg kell adnia egy tulajdonságot vagy szkriptet, de mindkettőt nem.

  • A ScriptBlock elem határozza meg azt a szkriptet, amely új csoportot indít el, amikor annak értéke megváltozik. A csoport indításához meg kell adnia egy szkriptet vagy tulajdonságot, de mindkettőt nem.

  • A Címke elem definiálja az egyes csoportok elején megjelenő címkét. Az elem által megadott szöveg mellett a Windows PowerShell megjeleníti az új csoportot aktiváló értéket, és hozzáad egy üres sort 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 szolgál. Ez az elem nem kötelező.

  • A CustomControlName elem egy általános vagy nézetvezérlőt határoz meg, amely az adatok megjelenítésére szolgál. Ez az elem nem kötelező.

A csoportokat definiáló teljes formázási fájlra példa: Listanézet (GroupBy).

Sztringek formázása

A formázási sztringek hozzáadhatók egy nézethez 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 StartTime tulajdonság értékéhez.

<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 értékét a nézet megjeleníti. Meg kell adnia egy tulajdonságot vagy egy szkriptet, de mindkettőt nem.

  • A FormatString elem egy formátummintát határoz meg, amely meghatározza, hogy a tulajdonság vagy a szkript értéke hogyan jelenjen meg a nézetben.

  • A ScriptBlock elem (nem jelenik meg) azt a szkriptet határozza meg, amelynek értékét a nézet jeleníti meg. Meg kell adnia egy szkriptet vagy egy tulajdonságot, de mindkettőt nem.

Az alábbi példában a szkript értékének formázásához a ToString metódust hívjuk meg. A szkriptek az objektumok bármely metódusát meghívhatják. Ezért ha egy objektum olyan metódussal rendelkezik, például ToString, amely formázási paraméterekkel rendelkezik, a szkript meghívhatja ezt a metódust a szkript kimeneti értékének formázására.

<ListItem>
  <ScriptBlock>
    [string]::Format("{0,-10} {1,-8}", $_.LastWriteTime.ToString("d"), $_.LastWriteTime.ToString("t"))
  </ScriptBlock>
</ListItem>

A ToString metódus meghívásához a következő XML-elem használható:

  • A ListItem elem határozza meg a nézet által megjelenített adatokat.

  • A ScriptBlock elem (nem jelenik meg) azt a szkriptet határozza meg, amelynek értékét a nézet jeleníti meg. Meg kell adnia egy szkriptet vagy egy tulajdonságot, de mindkettőt nem.

Lásd még:

Windows PowerShell-parancsmag írása