การสร้างมุมมองตาราง
มุมมองตารางจะแสดงข้อมูลในหนึ่งคอลัมน์ขึ้นไป แต่ละแถวในตารางแสดงถึงวัตถุ .NET และแต่ละคอลัมน์ของตารางแสดงถึงคุณสมบัติของวัตถุหรือค่าสคริปต์ คุณสามารถกำหนดมุมมองตารางที่แสดงคุณสมบัติทั้งหมดของวัตถุหรือชุดย่อยของคุณสมบัติของวัตถุได้
การแสดงมุมมองตาราง
ตัวอย่างต่อไปนี้แสดงวิธีที่ Windows PowerShell แสดงวัตถุ System.Serviceprocess.Servicecontroller ที่ส่งคืนโดย Get-Service cmdlet สำหรับวัตถุนี้ Windows PowerShell ได้กำหนดมุมมองตารางที่แสดงคุณสมบัติ สถานะ ซึ่งเป็นคุณสมบัติ ชื่อ (คุณสมบัตินี้เป็นคุณสมบัตินามแฝงสำหรับ 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?Displayproperty=Fullname คุณต้องระบุแต่ละคุณสมบัติที่คุณต้องการให้แสดงในมุมมองตาราง
<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 ต่อไปนี้จะใช้ในการกำหนดมุมมองรายการ:
องค์ประกอบมุมมองเป็นองค์ประกอบหลักของมุมมองตาราง (นี่เป็นองค์ประกอบหลักเดียวกันสำหรับรายการ มุมมองแบบกว้าง และมุมมองการควบคุมแบบกำหนดเอง)
-
องค์ประกอบชื่อระบุชื่อของมุมมอง องค์ประกอบนี้จำเป็นสำหรับทุกมุมมอง
องค์ประกอบ ViewSelectedBy กำหนดวัตถุที่ใช้มุมมอง จำเป็นต้องมีองค์ประกอบนี้
องค์ประกอบ GroupBy (ไม่แสดงในตัวอย่างนี้) กำหนดเมื่อกลุ่มใหม่ของวัตถุจะปรากฏขึ้น กลุ่มใหม่จะเริ่มต้นเมื่อใดก็ตามที่ค่าของคุณสมบัติหรือสคริปต์เฉพาะมีการเปลี่ยนแปลง องค์ประกอบนี้เป็นทางเลือก
องค์ประกอบการควบคุม (ไม่แสดงในตัวอย่างนี้) กำหนดการควบคุมแบบกำหนดเองที่กำหนดโดยมุมมองตาราง การควบคุมช่วยให้คุณระบุวิธีการแสดงข้อมูลเพิ่มเติมได้ องค์ประกอบนี้เป็นทางเลือก มุมมองสามารถกำหนดตัวควบคุมแบบกำหนดเองของตัวเองได้ หรือใช้ตัวควบคุมทั่วไปที่สามารถใช้โดยมุมมองใดก็ได้ในไฟล์การจัดรูปแบบ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการควบคุมแบบกำหนดเอง โปรดดู การสร้างการควบคุมแบบกำหนดเอง
องค์ประกอบ HideTableHeaders (ไม่แสดงในตัวอย่างนี้) ระบุว่าตารางจะไม่แสดงป้ายกำกับใดๆ ที่ด้านบนของตาราง องค์ประกอบนี้เป็นทางเลือก
องค์ประกอบ TableControl ที่กำหนดข้อมูลส่วนหัวและแถวของตาราง เช่นเดียวกับมุมมองอื่นๆ ทั้งหมด มุมมองตารางสามารถแสดงค่าของคุณสมบัติของวัตถุหรือค่าที่สร้างโดยสคริปต์
การกำหนดส่วนหัวของคอลัมน์
องค์ประกอบ TableHeaders และองค์ประกอบย่อยจะกำหนดสิ่งที่แสดงที่ด้านบนของตาราง
องค์ประกอบ TableColumnHeader กำหนดสิ่งที่จะแสดงที่ด้านบนของคอลัมน์ของตาราง ระบุองค์ประกอบเหล่านี้ตามลำดับที่คุณต้องการให้แสดงส่วนหัว
ไม่มีการจำกัดจำนวนองค์ประกอบเหล่านี้ที่คุณสามารถใช้ได้ แต่จำนวนองค์ประกอบ TableColumnHeader ในมุมมองตารางของคุณจะต้องเท่ากับจำนวนองค์ประกอบ TableRowEntry ที่คุณใช้
องค์ประกอบป้ายกำกับระบุข้อความที่แสดง องค์ประกอบนี้เป็นทางเลือก
-
องค์ประกอบความกว้างระบุความกว้าง (เป็นอักขระ) ของคอลัมน์ องค์ประกอบนี้เป็นทางเลือก
องค์ประกอบการจัดตำแหน่งจะระบุวิธีการแสดงป้ายกำกับ ป้ายกำกับสามารถจัดชิดซ้าย ไปทางขวา หรือกึ่งกลางได้ องค์ประกอบนี้เป็นทางเลือก
การกำหนดแถวของตาราง
มุมมองตารางสามารถให้คำจำกัดความตั้งแต่หนึ่งรายการขึ้นไปที่ระบุข้อมูลที่จะแสดงในแถวของตารางโดยใช้องค์ประกอบลูกขององค์ประกอบ TableRowEntries โปรดสังเกตว่าคุณสามารถระบุคำจำกัดความได้หลายคำสำหรับแถวของตาราง แต่ส่วนหัวของแถวยังคงเหมือนเดิม ไม่ว่าจะใช้คำนิยามแถวใดก็ตาม โดยทั่วไปแล้ว ตารางจะมีคำจำกัดความเพียงคำเดียวเท่านั้น
ในตัวอย่างต่อไปนี้ มุมมองให้คำจำกัดความเดียวที่แสดงค่าของคุณสมบัติต่างๆ ของอ็อบเจ็กต์ System.Diagnostics.Process?Displayproperty=Fullname มุมมองตารางสามารถแสดงค่าของคุณสมบัติหรือค่าของสคริปต์ (ไม่แสดงในตัวอย่าง) ในแถวได้
<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 ระบุรูปแบบรูปแบบที่กำหนดวิธีการแสดงคุณสมบัติหรือค่าสคริปต์ องค์ประกอบนี้เป็นทางเลือก
องค์ประกอบการจัดตำแหน่งจะระบุวิธีการแสดงค่าของคุณสมบัติหรือสคริปต์ ค่าสามารถจัดชิดซ้าย ไปทางขวา หรือกึ่งกลางได้ องค์ประกอบนี้เป็นทางเลือก
การกำหนดวัตถุที่ใช้มุมมองตาราง
มีสองวิธีในการกำหนดว่าวัตถุ .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