Skapa en tabellvy
En tabellvy visar data i en eller flera kolumner. Varje rad i tabellen representerar ett .NET-objekt, och varje kolumn i tabellen representerar en egenskap för objektet eller ett skriptvärde. Du kan definiera en tabellvy som visar alla egenskaper för ett objekt eller en delmängd av egenskaperna för ett objekt.
Visning av tabellvy
I följande exempel visas hur Windows PowerShell visar System.ServiceProcess.ServiceController objekt som returneras av cmdleten Get-Service. För det här objektet har Windows PowerShell definierat en tabellvy som visar egenskapen Status
, egenskapen Name
(den här egenskapen är en aliasegenskap för egenskapen ServiceName
) och egenskapen DisplayName
. Varje rad i tabellen representerar ett objekt som returneras av cmdleten.
Status Name DisplayName
------ ---- -----------
Stopped AJRouter AllJoyn Router Service
Stopped ALG Application Layer Gateway Service
Stopped AppIDSvc Application Identity
Running Appinfo Application Information
Definiera tabellvyn
Följande XML visar tabellvyschemat för att visa objektet System.ServiceProcess.ServiceController. Du måste ange varje egenskap som du vill ska visas i tabellvyn.
<View>
<Name>service</Name>
<ViewSelectedBy>
<TypeName>System.ServiceProcess.ServiceController</TypeName>
</ViewSelectedBy>
<TableControl>
<TableHeaders>
<TableColumnHeader>
<Width>8</Width>
</TableColumnHeader>
<TableColumnHeader>
<Width>18</Width>
</TableColumnHeader>
<TableColumnHeader>
<Width>38</Width>
</TableColumnHeader>
</TableHeaders>
<TableRowEntries>
<TableRowEntry>
<TableColumnItems>
<TableColumnItem>
<PropertyName>Status</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Name</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>DisplayName</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
</TableControl>
</View>
Följande XML-element används för att definiera en listvy:
Elementet View är det överordnade elementet i tabellvyn. (Det här är samma överordnade element för listvyer, 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 (visas inte i det här exemplet) 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 (visas inte i det här exemplet) definierar de anpassade kontroller som definieras av tabellvyn. 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 HideTableHeaders (visas inte i det här exemplet) anger att tabellen inte visar några etiketter överst i tabellen. Det här elementet är valfritt.
Elementet TableControl som definierar rubrik- och radinformationen i tabellen. På samma sätt som alla andra vyer kan en tabellvy visa värdena för objektegenskaper eller värden som genereras av skript.
Definiera kolumnrubriker
TableHeaders element och dess underordnade element definierar vad som visas överst i tabellen.
Elementet TableColumnHeader definierar vad som visas överst i en kolumn i tabellen. Ange dessa element i den ordning som du vill att rubrikerna ska visas.
Det finns ingen gräns för antalet element som du kan använda, men antalet TableColumnHeader element i tabellvyn måste vara lika med antalet TableRowEntry element som du använder.
Elementet Label anger den text som visas. Det här elementet är valfritt.
Elementet Width anger kolumnens bredd (i tecken). Det här elementet är valfritt.
Elementet Justering anger hur etiketten visas. Etiketten kan justeras åt vänster, till höger eller centreras. Det här elementet är valfritt.
Definiera tabellrader
Tabellvyer kan innehålla en eller flera definitioner som anger vilka data som visas i raderna i tabellen med hjälp av underordnade element i TableRowEntries-elementet. Observera att du kan ange flera definitioner för raderna i tabellen, men rubrikerna för raderna förblir desamma, oavsett vilken raddefinition som används. Vanligtvis har en tabell bara en definition.
I följande exempel innehåller vyn en enda definition som visar värdena för flera egenskaper för objektet System.Diagnostics.Process. En tabellvy kan visa värdet för en egenskap eller värdet för ett skript (visas inte i exemplet) i dess rader.
<TableRowEntries>
<TableRowEntry>
<TableColumnItems>
<TableColumnItem>
<PropertyName>Status</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Name</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>DisplayName</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
Följande XML-element kan användas för att ange definitioner för en rad:
Elementet TableRowEntries och dess underordnade element definierar vad som visas i raderna i tabellen.
Elementet TableRowEntry innehåller en definition av raden. Minst en TableRowEntry- 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 TableRowEntry element som visar olika objekt.
Elementet Wrap anger att text som överskrider kolumnbredden visas på nästa rad. Som standard trunkeras text som överskrider kolumnbredden.
Elementet TableColumnItems definierar de egenskaper eller skript vars värden visas på raden.
Elementet TableColumnItem definierar egenskapen eller skriptet vars värde visas i kolumnen på raden. Ett TableColumnItem--element krävs för varje kolumn i raden. Den första posten visas i den första kolumnen, den andra posten i den andra kolumnen och så vidare.
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 FormatString anger ett formatmönster som definierar hur egenskapen eller skriptvärdet visas. Det här elementet är valfritt.
Elementet Justering anger hur värdet för egenskapen eller skriptet visas. Värdet kan justeras åt vänster, till höger eller centrerat. Det här elementet är valfritt.
Definiera de objekt som använder tabellvyn
Det finns två sätt att definiera vilka .NET-objekt som använder tabellvyn. 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 tabellvyn 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.ServiceProcess.ServiceController</TypeName>
</ViewSelectedBy>
<TableControl>...</TableControl>
</View>
Följande XML-element kan användas för att ange de objekt som används av tabellvyn:
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.
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>
<TableControl>...</TableControl>
</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 tabellvyn 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.
Anmärkning
När du skapar flera definitioner av tabellvyn kan du inte ange olika kolumnrubriker. Du kan bara ange vad som visas i raderna i tabellen, till exempel vilka objekt som visas.
<TableRowEntry>
<EntrySelectedBy>
<TypeName>.NET Type</TypeName>
</EntrySelectedBy>
</TableRowEntry>
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.
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
.
<TableColumnItem>
<PropertyName>StartTime</PropertyName>
<FormatString>{0:MMM} {0:DD} {0:HH}:{0:MM}</FormatString>
</TableColumnItem>
Följande XML-element kan användas för att ange ett formatmönster:
Elementet TableColumnItem definierar egenskapen eller skriptet vars värde visas i kolumnen på raden. Ett TableColumnItem--element krävs för varje kolumn i raden. Den första posten visas i den första kolumnen, den andra posten i den andra kolumnen och så vidare.
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 FormatString anger ett formatmönster som definierar hur egenskapen eller skriptvärdet visas.
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 TableColumnItem definierar egenskapen eller skriptet vars värde visas i kolumnen på raden. Ett TableColumnItem--element krävs för varje kolumn i raden. Den första posten visas i den första kolumnen, den andra posten i den andra kolumnen och så vidare.
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.