เป็นแนวทางง่าย ๆ ที่หลายคนอาจจะงงและสับสนอยู่พักหนึ่ง เมื่อต้องการ set
ค่า
default ให้กับ ComboBox ในที่นี้จะขอยกตัวอย่างง่าย ดังนี้
กำหนดกลุ่มข้อมูลที่ต้องการ set ค่าให้กับ 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 ครับ
แสดงความคิดเห็น