WPF Nested Data Grid พร้อมส่วนหัวคงที่และส่วนหัวย่อย

ฉันต้องการสร้างตารางข้อมูลที่ซ้อนกัน WPF ซึ่งจะมีส่วนหัวคงที่และส่วนหัวย่อย ด้านล่างนี้คือบางจุดที่จำเป็นในการสร้างการควบคุมกริดแบบซ้อน:-

  1. แถวตารางหลักจะมีข้อมูลจัดชิดกับคอลัมน์ส่วนหัวหลัก และแถวตารางที่ซ้อนกันจะมีข้อมูลจัดชิดกับคอลัมน์ส่วนหัวย่อย
  2. เมื่อคลิกแถวกริดหลัก แถวกริดที่ซ้อนกันควรแสดงพร้อมข้อมูลที่สอดคล้องกับคอลัมน์ส่วนหัวย่อย
  3. ผู้ใช้จะต้องสามารถขยายแถวกริดหลักได้หลายแถว

ด้านล่างนี้เป็นรูปภาพที่แสดงตารางที่เราต้องการ

ป้อนคำอธิบายรูปภาพที่นี่

ดังที่แสดงในตารางด้านบน แถวสีเทาคือแถวหลักที่จัดชิดกับส่วนหัว Main และแถวสีขาวสองแถวคือแถวย่อยที่จัดชิดกับส่วนหัวย่อย (operacao, autent., hora ฯลฯ)

คอลเลกชัน (ตารางหลัก) ที่ต้องผูกไว้กับตัวควบคุมนี้มีคอลเลกชันอื่นเป็นคุณสมบัติซึ่งประกอบด้วยแถวของแถวย่อย (ตารางที่ซ้อนกัน)


person Sharad    schedule 03.09.2015    source แหล่งที่มา


คำตอบ (1)


ฟังก์ชันนี้สามารถทำได้โดยใช้ลำดับชั้นต่อไปนี้:

  1. ในการสร้างตัวควบคุม คุณจะต้องสร้างป้ายกำกับแยกจากตารางด้วยการออกแบบที่คาดหวัง และจัดแนวความกว้างให้ตรงกับคุณสมบัติคอลเลกชันซึ่งหมายถึงเป็นคอลัมน์ตาราง
  2. สร้างการควบคุมแบบกำหนดเองที่สืบทอดมาจาก Data-grid และจัดการเหตุการณ์ Mouse และ Key ในนั้นสำหรับ Data-grid
  3. ใช้การควบคุมแบบกำหนดเองนี้ในไฟล์ XAML หลักที่มีแหล่งข้อมูลเท่ากับคอลเลกชันหลัก (รายการ) และผูกคอลัมน์ของกริดเข้ากับคุณสมบัติของแหล่งข้อมูล
  4. ใช้ Data-Template ภายใน Data-grid ด้วย RowDetailsTemplate ซึ่งจะมีการควบคุมแบบกำหนดเองเพิ่มเติม (Data-grid)
  5. ผูกคอลเลกชันภายในที่มีอยู่ในคอลเลกชันหลักเข้ากับตัวควบคุมแบบกำหนดเองภายในนี้ นี่คือวิธีการทำรังโดยใช้ส่วนประกอบ Data-grid
  6. สำหรับฟังก์ชันการขยายและยุบจะแทนที่เหตุการณ์เลื่อนเมาส์ลง/เลื่อนเมาส์ขึ้นของตัวควบคุมแบบกำหนดเอง และจัดการการมองเห็นรายละเอียดแถวของตัวควบคุม นี่คือวิธีที่คุณสามารถควบคุมการขยายและการล่มสลายของแถวกริด

คุณยังสามารถแทนที่เหตุการณ์การคลิกและจัดการการนำทางเพิ่มเติมได้ นอกจากนี้ เพื่อให้บรรลุการออกแบบเดียวกัน ให้ทำการปรับเปลี่ยนบางอย่างในคอลัมน์กริด คุณสามารถบรรลุพฤติกรรมนี้ได้ด้วยวิธีดังกล่าว

person Sumit Saini    schedule 04.11.2015