Dela via


Skapa en listvy

En listvy visar data i en enda kolumn (i sekventiell ordning). De data som visas i listan kan vara värdet för en .NET-egenskap eller värdet för ett skript.

Visa en listvy

Följande utdata visar hur Windows PowerShell visar egenskaperna för System.ServiceProcess.ServiceController objekt som returneras av cmdleten Get-Service. I det här exemplet returnerades tre objekt, där varje objekt avgränsades från föregående objekt med en tom rad.

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

Definiera listvyn

Följande XML visar listvyschemat för att visa flera egenskaper för objektet System.ServiceProcess.ServiceController. Du måste ange varje egenskap som du vill ska visas i listvyn.

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

Följande XML-element används för att definiera en listvy:

  • Elementet View är det överordnade elementet i listvyn. (Det här är samma överordnade element för tabellvyer, breda och anpassade kontrollvyer.)

  • Elementet Name anger namnet på vyn. Det här elementet krävs för alla vyer.

  • Elementet ViewSelectedBy definierar de objekt som använder vyn. Det här elementet krävs.

  • Elementet GroupBy definierar när en ny grupp med objekt visas. En ny grupp startas när värdet för en specifik egenskap eller ett visst skript ändras. Det här elementet är valfritt.

  • Elementet Controls definierar de anpassade kontroller som definieras av listvyn. Med kontroller kan du ange hur data ska visas ytterligare. Det här elementet är valfritt. En vy kan definiera sina egna anpassade kontroller eller använda vanliga kontroller som kan användas av valfri vy i formateringsfilen. Mer information om anpassade kontroller finns i Skapa anpassade kontroller.

  • Elementet ListControl definierar vad som visas i vyn och hur det formateras. På samma sätt som alla andra vyer kan en listvy visa värdena för objektegenskaper eller värden som genereras av skript.

Ett exempel på en fullständig formateringsfil som definierar en enkel listvy finns i List view (Basic).

Ange definitioner för listvyn

Listvyer kan ge en eller flera definitioner med hjälp av underordnade element i elementet ListControl. Vanligtvis har en vy bara en definition. I följande exempel innehåller vyn en enda definition som visar flera egenskaper för objektet System.Diagnostics.Process. En listvy kan visa värdet för en egenskap eller värdet för ett skript (visas inte i exemplet).

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

Följande XML-element kan användas för att ange definitioner för en listvy:

  • Elementet ListControl och dess underordnade element definierar vad som visas i vyn.

  • Elementet ListEntries innehåller definitionerna av vyn. I de flesta fall har en vy bara en definition. Det här elementet krävs.

  • Elementet ListEntry innehåller en definition av vyn. Minst en ListEntry krävs. Det finns dock ingen maximal gräns för antalet element som du kan lägga till. I de flesta fall har en vy bara en definition.

  • Elementet EntrySelectedBy anger de objekt som visas med en specifik definition. Det här elementet är valfritt och behövs bara när du definierar flera ListEntry element som visar olika objekt.

  • Elementet ListItems anger de egenskaper och skript vars värden visas i raderna i listvyn.

  • Elementet ListItem anger en egenskap eller ett skript vars värde visas i en rad i listvyn. En listvy måste ange minst en egenskap eller ett skript. Det finns ingen maximal gräns för hur många rader som kan anges.

  • Elementet PropertyName anger den egenskap vars värde visas på raden. Du måste ange antingen en egenskap eller ett skript, men du kan inte ange båda.

  • Elementet ScriptBlock anger skriptet vars värde visas på raden. Du måste ange antingen ett skript eller en egenskap, men du kan inte ange båda.

  • Elementet Label anger etiketten som visas till vänster om egenskapen eller skriptvärdet på raden. Det här elementet är valfritt. Om en etikett inte har angetts visas namnet på egenskapen eller skriptet. Ett fullständigt exempel finns i listvy (etiketter).

  • Elementet ItemSelectionCondition anger ett villkor som måste finnas för att raden ska visas. Mer information om hur du lägger till villkor i listvyn finns i Definiera villkor för att visa data. Det här elementet är valfritt.

  • Elementet FormatString anger ett mönster som används för att visa värdet för egenskapen eller skriptet. Det här elementet är valfritt.

Ett exempel på en fullständig formateringsfil som definierar en enkel listvy finns i List view (Basic).

Definiera de objekt som använder listvyn

Det finns två sätt att definiera vilka .NET-objekt som använder listvyn. Du kan använda elementet ViewSelectedBy för att definiera de objekt som kan visas av alla definitioner i vyn, eller så kan du använda elementet EntrySelectedBy för att definiera vilka objekt som visas med en specifik definition av vyn. I de flesta fall har en vy bara en definition, så objekt definieras vanligtvis av elementet ViewSelectedBy.

I följande exempel visas hur du definierar de objekt som visas i listvyn med hjälp av elementen ViewSelectedBy och TypeName. Det finns ingen gräns för antalet TypeName- element som du kan ange och deras ordning är inte betydande.

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

Följande XML-element kan användas för att ange de objekt som används av listvyn:

  • Elementet ViewSelectedBy definierar vilka objekt som visas i listvyn.

  • Elementet TypeName anger det .NET-objekt som visas av vyn. Det fullständigt kvalificerade .NET-typnamnet krävs. Du måste ange minst en typ eller markeringsuppsättning för vyn, men det finns inget maximalt antal element som kan anges.

Ett exempel på en fullständig formateringsfil finns i List View (Basic).

I följande exempel används elementen ViewSelectedBy och SelectionSetName. Använd markeringsuppsättningar där du har en relaterad uppsättning objekt som visas med flera vyer, till exempel när du definierar en listvy och en tabellvy för samma objekt. Mer information om hur du skapar en markeringsuppsättning finns i Definiera markeringsuppsättningar.

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

Följande XML-element kan användas för att ange de objekt som används av listvyn:

  • Elementet ViewSelectedBy definierar vilka objekt som visas i listvyn.

  • Elementet SelectionSetName anger en uppsättning objekt som kan visas av vyn. Du måste ange minst en markeringsuppsättning eller typ för vyn, men det finns inget maximalt antal element som kan anges.

I följande exempel visas hur du definierar de objekt som visas av en specifik definition av listvyn med hjälp av elementet EntrySelectedBy. Med det här elementet kan du ange .NET-typnamnet för objektet, en markeringsuppsättning med objekt eller ett markeringsvillkor som anger när definitionen används. Mer information om hur du skapar ett urvalsvillkor finns i Definiera villkor för att visa data.

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

Följande XML-element kan användas för att ange de objekt som används av en specifik definition av listvyn:

  • Elementet EntrySelectedBy definierar vilka objekt som visas av definitionen.

  • Elementet TypeName anger det .NET-objekt som visas av definitionen. När du använder det här elementet krävs det fullständigt kvalificerade .NET-typnamnet. Du måste ange minst en typ, en markeringsuppsättning eller ett urvalsvillkor för definitionen, men det finns inget maximalt antal element som kan anges.

  • Elementet SelectionSetName (visas inte) anger en uppsättning objekt som kan visas med den här definitionen. Du måste ange minst en typ, en markeringsuppsättning eller ett urvalsvillkor för definitionen, men det finns inget maximalt antal element som kan anges.

  • Elementet SelectionCondition (visas inte) anger ett villkor som måste finnas för att den här definitionen ska kunna användas. Du måste ange minst en typ, en markeringsuppsättning eller ett urvalsvillkor för definitionen, men det finns inget maximalt antal element som kan anges. Mer information om hur du definierar urvalsvillkor finns i Definiera villkor för att visa data.

Visa grupper av objekt i en listvy

Du kan separera de objekt som visas i listvyn i grupper. Det innebär inte att du definierar en grupp, bara att Windows PowerShell startar en ny grupp när värdet för en specifik egenskap eller ett visst skript ändras. I följande exempel startas en ny grupp när värdet för egenskapen System.ServiceProcess.ServiceController.ServiceType ändras.

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

Följande XML-element används för att definiera när en grupp startas:

  • Elementet GroupBy definierar egenskapen eller skriptet som startar den nya gruppen och definierar hur gruppen visas.

  • Elementet PropertyName anger den egenskap som startar en ny grupp när dess värde ändras. Du måste ange en egenskap eller ett skript för att starta gruppen, men du kan inte ange båda.

  • Elementet ScriptBlock anger skriptet som startar en ny grupp när dess värde ändras. Du måste ange ett skript eller en egenskap för att starta gruppen, men du kan inte ange båda.

  • Elementet Label definierar en etikett som visas i början av varje grupp. Förutom den text som anges av det här elementet visar Windows PowerShell värdet som utlöste den nya gruppen och lägger till en tom rad före och efter etiketten. Det här elementet är valfritt.

  • Elementet CustomControl definierar en kontroll som används för att visa data. Det här elementet är valfritt.

  • Elementet CustomControlName anger en gemensam kontroll eller vykontroll som används för att visa data. Det här elementet är valfritt.

Ett exempel på en fullständig formateringsfil som definierar grupper finns i Listvy (GroupBy).

Använda formatsträngar

Formateringssträngar kan läggas till i en vy för att ytterligare definiera hur data ska visas. I följande exempel visas hur du definierar en formateringssträng för värdet för egenskapen StartTime.

<ListItem>
  <PropertyName>StartTime</PropertyName>
  <FormatString>{0:MMM} {0:DD} {0:HH}:{0:MM}</FormatString>
</ListItem>

Följande XML-element kan användas för att ange ett formatmönster:

  • Elementet ListItem anger de data som visas av vyn.

  • Elementet PropertyName anger den egenskap vars värde visas av vyn. Du måste ange antingen en egenskap eller ett skript, men du kan inte ange båda.

  • Elementet FormatString anger ett formatmönster som definierar hur egenskapen eller skriptvärdet visas i vyn.

  • Elementet ScriptBlock (visas inte) anger det skript vars värde visas av vyn. Du måste ange antingen ett skript eller en egenskap, men du kan inte ange båda.

I följande exempel anropas metoden ToString för att formatera värdet för skriptet. Skript kan anropa vilken metod som helst för ett objekt. Om ett objekt har en metod, till exempel ToString, som har formateringsparametrar, kan skriptet anropa den metoden för att formatera utdatavärdet för skriptet.

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

Följande XML-element kan användas för att anropa metoden ToString:

  • Elementet ListItem anger de data som visas av vyn.

  • Elementet ScriptBlock (visas inte) anger det skript vars värde visas av vyn. Du måste ange antingen ett skript eller en egenskap, men du kan inte ange båda.

Se även

Skriva en Windows PowerShell-cmdlet