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.

En listvyvy

Följande utdata visar hur Windows PowerShell visar egenskaperna för System.Serviceprocess.Servicecontroller? Displayproperty=Fullname objects 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 System.Serviceprocess.Servicecontroller? Displayproperty=Fullname object. 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:

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

  • Elementet Namn 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.

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

  • Elementet Controls definierar de anpassade kontroller som definieras av listvyn. Kontroller ger dig ett sätt att ytterligare ange hur data ska visas. 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.

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

Ett exempel på en fullständig formateringsfil som definierar en enkel listvy finns i Listvy (Grundläggande).

Ange definitioner för listvyn

Listvyer kan tillhandahålla en eller flera definitioner med hjälp av de underordnade elementen i ListControl-elementet. Normalt har en vy bara en definition. I följande exempel innehåller vyn en enda definition som visar flera egenskaper för System.Diagnostics.Process? Displayproperty=Fullname object. 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:

  • ListControl-elementet 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 maxgrä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 av en viss 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 på raderna i listvyn.

  • Elementet ListItem anger en egenskap eller ett skript vars värde visas på en rad i listvyn. En listvy måste ange minst en egenskap eller ett skript. Det finns ingen maxgrä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.

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

  • Elementet Etikett anger etiketten som visas till vänster om egenskaps- eller skriptvärdet på raden. Det här elementet är valfritt. Om en etikett inte anges visas namnet på egenskapen eller skriptet. Ett komplett 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.

  • FormatString-elementet 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 Listvy (Grundläggande).

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 ViewSelectedBy-elementet för att definiera de objekt som kan visas av alla definitioner för vyn, eller så kan du använda elementet EntrySelectedBy för att definiera vilka objekt som ska visas av en viss definition av vyn. I de flesta fall har en vy bara en definition, så objekt definieras vanligtvis av ViewSelectedBy-elementet.

I följande exempel visas hur du definierar de objekt som visas i listvyn med 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 i vyn. Det fullständigt kvalificerade .NET-typnamnet krävs. Du måste ange minst en typ eller urvalsuppsättning för vyn, men det finns inget maximalt antal element som kan anges.

Ett exempel på en fullständig formateringsfil finns i Listvy (Grundläggande).

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 urvalsuppsättning finns i Definiera urvalsuppsä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 i vyn. Du måste ange minst en urvalsuppsä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 urvalsuppsättning objekt eller ett urvalsvillkor 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 urvalsuppsä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 urvalsuppsä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 användas. Du måste ange minst en typ, en urvalsuppsä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. Detta innebär inte att du definierar en grupp, bara att Windows PowerShell startar en ny grupp när värdet för en viss egenskap eller ett 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:

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

  • Elementet PropertyName anger egenskapen 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.

  • ScriptBlock-elementet anger det skript 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 Etikett 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 som utlöste den nya gruppen och lägger till en tom rad före och efter etiketten. Det här elementet är valfritt.

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

  • CustomControlName-elementet 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 StartTime egenskapen .

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

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

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

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

I följande exempel anropas ToString metoden för att formatera skriptets värde. Skript kan anropa valfri metod för ett objekt. Om ett objekt därför har en -metod, till exempel , som har formateringsparametrar kan skriptet anropa den metoden för att formatera ToString 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 ToString metoden :

  • Elementet ListItem anger de data som visas i vyn.

  • ScriptBlock-elementet (visas inte) anger det skript vars värde visas i 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