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.

Lásd még:

Windows PowerShell-parancsmag írása