วิธีกำหนดค่า Default ให้กับ ComboBox ด้วย c# windows application

เป็นแนวทางง่าย ๆ ที่หลายคนอาจจะงงและสับสนอยู่พักหนึ่ง เมื่อต้องการ set ค่า default ให้กับ ComboBox ในที่นี้จะขอยกตัวอย่างง่าย ดังนี้

    กำหนดกลุ่มข้อมูลที่ต้องการ set  ค่าให้กับ  ComboBox
// สร้าง class แผนก
class Department
{
        public string Code { get; set; }
        public string Name { get; set; }

}

// กำหนดกลุ่มข้อมูลของแผนก
   List<Department> departments = new List<Department>();
   Department department;

   department = new Department();
   department.Code = "01";
   department.Name = "การเงิน";
   departments.Add(department);

   department = new Department();
   department.Code = "02";
   department.Name = "ช่างเทคนิค";
   departments.Add(department);

   department = new Department();
   department.Code = "03";
   department.Name = "บัญชี";
   departments.Add(department);

     จากตัวอย่างกำหนดข้อมูลแผนกของพนักงานโดยมี 3 แผนก คือ การเงิน ,ช่างเทคนิค,บัญชี  แล้ว set ค่าเหล่านี้ให้กับ ComboBox 
   this.comboBox1.DataSource = departments;
   this.comboBox1.DisplayMember = "Name";
   this.comboBox1.ValueMember = "Code";
จะได้ดังภาพด้านล่างนี้
ซึ่งการเราต้องการ set ค่า default ของ ComboBox เป็นแผนกช่างเทคนิค เราจะสามารถทำได้โดย
this.comboBox1.SelectedIndex = 1;
ปัญหามีอยู่ว่าหาก  requirement  เปลี่ยนไป หากมีข้อมูลแผนกที่มากกว่านี้แล้วต้องการ set ค่า default ของ ComboBox ในแผนกอื่นที่ไม่ใช่แผนกช่างเทคนิคละ เราจะต้องรู้ว่า  index ของแผนกที่เราต้องการ set  คือ index ที่เท่าไหร่ถึงจะสามารถไปกำหนดได้ 
                แต่มีแนวทางที่ดีกว่านี้ครับ
var list = departments;
this.comboBox1.SelectedIndex = list.FindIndex(c => c.Code == "02");

เราสามารถหา index  จากการใช้  FindIndex ได้เลยครับ  ลองเอาแนวทางนี้ไปใช้ครับรับรองหายงงและหายสับสบ ณ บัด Now ครับ 

แสดงความคิดเห็น