테이블 뷰는 하나 이상의 열에 데이터를 표시합니다. 테이블의 각 행은 .NET 개체를 나타내고 테이블의 각 열은 개체 또는 스크립트 값의 속성을 나타냅니다. 개체의 모든 속성 또는 개체 속성의 하위 집합을 표시하는 테이블 뷰를 정의할 수 있습니다.
테이블 뷰 표시
다음 예제에서는 Windows PowerShell에서 Get-Service cmdlet에서 반환되는 System.ServiceProcess.ServiceController 개체를 표시하는 방법을 보여 줍니다. 이 개체의 경우 Windows PowerShell은 Status
속성, Name
속성(이 속성은 ServiceName
속성의 별칭 속성) 및 DisplayName
속성을 표시하는 테이블 뷰를 정의했습니다. 테이블의 각 행은 cmdlet에서 반환된 개체를 나타냅니다.
Status Name DisplayName
------ ---- -----------
Stopped AJRouter AllJoyn Router Service
Stopped ALG Application Layer Gateway Service
Stopped AppIDSvc Application Identity
Running Appinfo Application Information
테이블 뷰 정의
다음 XML에서는 System.ServiceProcess.ServiceController 개체를 표시하기 위한 테이블 뷰 스키마를 보여 줍니다. 테이블 뷰에 표시할 각 속성을 지정해야 합니다.
<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>
다음 XML 요소는 목록 보기를 정의하는 데 사용됩니다.
View 요소는 테이블 뷰의 부모 요소입니다. 목록, 와이드 및 사용자 지정 컨트롤 뷰에 대해 동일한 부모 요소입니다.
Name 요소는 뷰의 이름을 지정합니다. 이 요소는 모든 보기에 필요합니다.
ViewSelectedBy 요소는 뷰를 사용하는 개체를 정의합니다. 이 요소는 필수 요소입니다.
GroupBy 요소(이 예제에서는 표시되지 않음)는 새 개체 그룹이 표시되는 시기를 정의합니다. 특정 속성 또는 스크립트의 값이 변경될 때마다 새 그룹이 시작됩니다. 이 요소는 선택적입니다.
Controls 요소(이 예제에 표시되지 않음)는 테이블 뷰에 정의된 사용자 지정 컨트롤을 정의합니다. 컨트롤을 사용하면 데이터가 표시되는 방법을 추가로 지정할 수 있습니다. 이 요소는 선택적입니다. 뷰는 고유한 사용자 지정 컨트롤을 정의하거나 서식 파일의 모든 보기에서 사용할 수 있는 공용 컨트롤을 사용할 수 있습니다. 사용자 지정 컨트롤에 대한 자세한 내용은 사용자 지정 컨트롤 만들기참조하세요.
HideTableHeaders 요소(이 예제에서는 표시되지 않음)는 표 맨 위에 레이블이 표시되지 않도록 지정합니다. 이 요소는 선택적입니다.
테이블의 머리글 및 행 정보를 정의하는 TableControl 요소입니다. 다른 모든 보기와 마찬가지로 테이블 뷰는 스크립트에서 생성된 개체 속성 또는 값의 값을 표시할 수 있습니다.
열 머리글 정의
TableHeaders 요소 및 해당 자식 요소는 테이블 맨 위에 표시되는 항목을 정의합니다.
TableColumnHeader 요소는 테이블 열의 맨 위에 표시되는 항목을 정의합니다. 헤더를 표시할 순서대로 이러한 요소를 지정합니다.
사용할 수 있는 이러한 요소의 수에는 제한이 없지만 테이블 뷰의 TableColumnHeader 요소 수는 사용하는 TableRowEntry 요소의 수와 같아야 합니다.
Label 요소는 표시되는 텍스트를 지정합니다. 이 요소는 선택적입니다.
Width 요소는 열의 너비(문자 단위)를 지정합니다. 이 요소는 선택적입니다.
Alignment 요소는 레이블이 표시되는 방식을 지정합니다. 레이블은 왼쪽, 오른쪽 또는 가운데에 맞출 수 있습니다. 이 요소는 선택적입니다.
테이블 행 정의
테이블 뷰는 TableRowEntries 요소의 자식 요소를 사용하여 테이블 행에 표시되는 데이터를 지정하는 하나 이상의 정의를 제공할 수 있습니다. 테이블의 행에 대해 여러 정의를 지정할 수 있지만 사용되는 행 정의에 관계없이 행의 헤더는 동일하게 유지됩니다. 일반적으로 테이블에는 정의가 하나만 있습니다.
다음 예제에서 뷰는 System.Diagnostics.Process 개체의 여러 속성 값을 표시하는 단일 정의를 제공합니다. 테이블 뷰는 속성 값이나 스크립트의 값(예제에 표시되지 않음)을 행에 표시할 수 있습니다.
<TableRowEntries>
<TableRowEntry>
<TableColumnItems>
<TableColumnItem>
<PropertyName>Status</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Name</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>DisplayName</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
다음 XML 요소를 사용하여 행에 대한 정의를 제공할 수 있습니다.
TableRowEntries 요소 및 해당 자식 요소는 테이블 행에 표시되는 항목을 정의합니다.
TableRowEntry 요소는 행의 정의를 제공합니다. 하나 이상의 TableRowEntry 필요합니다. 그러나 추가할 수 있는 요소 수에는 최대 제한이 없습니다. 대부분의 경우 뷰에는 정의가 하나만 있습니다.
EntrySelectedBy 요소는 특정 정의에 의해 표시되는 개체를 지정합니다. 이 요소는 선택 사항이며 서로 다른 개체를 표시하는 여러 TableRowEntry 요소를 정의하는 경우에만 필요합니다.
Wrap 요소는 열 너비를 초과하는 텍스트가 다음 줄에 표시되도록 지정합니다. 기본적으로 열 너비를 초과하는 텍스트는 잘립니다.
TableColumnItems 요소는 값이 행에 표시되는 속성 또는 스크립트를 정의합니다.
TableColumnItem 요소는 값이 행의 열에 표시되는 속성 또는 스크립트를 정의합니다. 행의 각 열에 TableColumnItem 요소가 필요합니다. 첫 번째 항목은 첫 번째 열, 두 번째 열의 두 번째 항목 등에 표시됩니다.
PropertyName 요소는 값이 행에 표시되는 속성을 지정합니다. 속성 또는 스크립트를 지정해야 하지만 둘 다 지정할 수는 없습니다.
ScriptBlock 요소는 값이 행에 표시되는 스크립트를 지정합니다. 스크립트 또는 속성을 지정해야 하지만 둘 다 지정할 수는 없습니다.
FormatString 요소는 속성 또는 스크립트 값이 표시되는 방식을 정의하는 형식 패턴을 지정합니다. 이 요소는 선택적입니다.
Alignment 요소는 속성 또는 스크립트의 값이 표시되는 방식을 지정합니다. 값을 왼쪽, 오른쪽 또는 가운데에 맞출 수 있습니다. 이 요소는 선택적입니다.
테이블 뷰를 사용하는 개체 정의
테이블 뷰를 사용하는 .NET 개체를 정의하는 방법에는 두 가지가 있습니다. ViewSelectedBy 요소를 사용하여 뷰의 모든 정의에서 표시할 수 있는 개체를 정의하거나 EntrySelectedBy 요소를 사용하여 뷰의 특정 정의에 의해 표시되는 개체를 정의할 수 있습니다. 대부분의 경우 뷰에는 정의가 하나만 있으므로 개체는 일반적으로 ViewSelectedBy 요소에 의해 정의됩니다.
다음 예제에서는 ViewSelectedBy 사용하여 테이블 뷰에 표시되는 개체를 정의하고 TypeName 요소를 방법을 보여 줍니다. 지정할 수 있는 TypeName 요소의 수에는 제한이 없으며 순서는 중요하지 않습니다.
<View>
<Name>System.ServiceProcess.ServiceController</Name>
<ViewSelectedBy>
<TypeName>System.ServiceProcess.ServiceController</TypeName>
</ViewSelectedBy>
<TableControl>...</TableControl>
</View>
다음 XML 요소를 사용하여 테이블 뷰에서 사용되는 개체를 지정할 수 있습니다.
ViewSelectedBy 요소는 목록 보기에 표시되는 개체를 정의합니다.
TypeName 요소는 뷰에 표시되는 .NET 개체를 지정합니다. 정규화된 .NET 형식 이름이 필요합니다. 뷰에 대해 하나 이상의 형식 또는 선택 집합을 지정해야 하지만 지정할 수 있는 최대 요소 수는 없습니다.
다음 예제에서는 ViewSelectedBy 및 SelectionSetName 요소를 사용합니다. 동일한 개체에 대한 목록 보기 및 테이블 뷰를 정의하는 경우와 같이 여러 보기를 사용하여 표시되는 관련 개체 집합이 있는 선택 집합을 사용합니다. 선택 집합을 만드는 방법에 대한 자세한 내용은 선택 집합 정의참조하세요.
<View>
<Name>System.ServiceProcess.ServiceController</Name>
<ViewSelectedBy>
<SelectionSetName>.NET Type Set</SelectionSetName>
</ViewSelectedBy>
<TableControl>...</TableControl>
</View>
다음 XML 요소를 사용하여 목록 보기에서 사용되는 개체를 지정할 수 있습니다.
ViewSelectedBy 요소는 목록 보기에 표시되는 개체를 정의합니다.
SelectionSetName 요소는 보기에서 표시할 수 있는 개체 집합을 지정합니다. 뷰에 대해 하나 이상의 선택 집합 또는 형식을 지정해야 하지만 지정할 수 있는 최대 요소 수는 없습니다.
다음 예제에서는 EntrySelectedBy 요소를 사용하여 테이블 뷰의 특정 정의에 의해 표시되는 개체를 정의하는 방법을 보여 줍니다. 이 요소를 사용하여 개체의 .NET 형식 이름, 개체의 선택 집합 또는 정의 사용 시기를 지정하는 선택 조건을 지정할 수 있습니다. 선택 조건을 만드는 방법에 대한 자세한 내용은 데이터표시하기 위한 조건 정의를 참조하세요.
비고
테이블 뷰의 여러 정의를 만들 때 다른 열 머리글을 지정할 수 없습니다. 표시되는 개체와 같이 테이블 행에 표시되는 항목만 지정할 수 있습니다.
<TableRowEntry>
<EntrySelectedBy>
<TypeName>.NET Type</TypeName>
</EntrySelectedBy>
</TableRowEntry>
다음 XML 요소를 사용하여 목록 보기의 특정 정의에 사용되는 개체를 지정할 수 있습니다.
EntrySelectedBy 요소는 정의에 의해 표시되는 개체를 정의합니다.
TypeName 요소는 정의에 의해 표시되는 .NET 개체를 지정합니다. 이 요소를 사용하는 경우 정규화된 .NET 형식 이름이 필요합니다. 정의에 대해 하나 이상의 형식, 선택 집합 또는 선택 조건을 지정해야 하지만 지정할 수 있는 최대 요소 수는 없습니다.
SelectionSetName 요소(표시되지 않음)는 이 정의에서 표시할 수 있는 개체 집합을 지정합니다. 정의에 대해 하나 이상의 형식, 선택 집합 또는 선택 조건을 지정해야 하지만 지정할 수 있는 최대 요소 수는 없습니다.
SelectionCondition 요소(표시되지 않음)는 이 정의를 사용하려면 존재해야 하는 조건을 지정합니다. 정의에 대해 하나 이상의 형식, 선택 집합 또는 선택 조건을 지정해야 하지만 지정할 수 있는 최대 요소 수는 없습니다. 선택 조건 정의에 대한 자세한 내용은 데이터표시하기 위한 조건 정의를 참조하세요.
형식 문자열 사용
서식 문자열을 뷰에 추가하여 데이터가 표시되는 방식을 추가로 정의할 수 있습니다. 다음 예제에서는 StartTime
속성의 값에 대 한 서식 문자열을 정의 하는 방법을 보여 있습니다.
<TableColumnItem>
<PropertyName>StartTime</PropertyName>
<FormatString>{0:MMM} {0:DD} {0:HH}:{0:MM}</FormatString>
</TableColumnItem>
다음 XML 요소를 사용하여 서식 패턴을 지정할 수 있습니다.
TableColumnItem 요소는 값이 행의 열에 표시되는 속성 또는 스크립트를 정의합니다. 행의 각 열에 TableColumnItem 요소가 필요합니다. 첫 번째 항목은 첫 번째 열, 두 번째 열의 두 번째 항목 등에 표시됩니다.
PropertyName 요소는 값이 행에 표시되는 속성을 지정합니다. 속성 또는 스크립트를 지정해야 하지만 둘 다 지정할 수는 없습니다.
FormatString 요소는 속성 또는 스크립트 값이 표시되는 방식을 정의하는 형식 패턴을 지정합니다.
다음 예제에서는 스크립트 값의 형식을 지정하기 위해 ToString
메서드가 호출됩니다. 스크립트는 개체의 모든 메서드를 호출할 수 있습니다. 따라서 개체에 서식 매개 변수가 있는 ToString
같은 메서드가 있는 경우 스크립트는 해당 메서드를 호출하여 스크립트의 출력 값 형식을 지정할 수 있습니다.
<ListItem>
<ScriptBlock>
[string]::Format("{0,-10} {1,-8}", $_.LastWriteTime.ToString("d"), $_.LastWriteTime.ToString("t"))
</ScriptBlock>
</ListItem>
다음 XML 요소를 사용하여 ToString
메서드를 호출할 수 있습니다.
TableColumnItem 요소는 값이 행의 열에 표시되는 속성 또는 스크립트를 정의합니다. 행의 각 열에 TableColumnItem 요소가 필요합니다. 첫 번째 항목은 첫 번째 열, 두 번째 열의 두 번째 항목 등에 표시됩니다.
ScriptBlock 요소는 값이 행에 표시되는 스크립트를 지정합니다. 스크립트 또는 속성을 지정해야 하지만 둘 다 지정할 수는 없습니다.
또한 참조하십시오
PowerShell