[C#]บันทึกการใช้งาน Combobox แบบด้วนๆ

เนื่องจากความไม่รู้ และ เพิ่งมาหัดเล่น Windows App ด้วย C# ได้ใหม่ยังไมุ่คุ้นเคยกับการใช้งบาน Component ต่างๆ ที่เจอปัญหาคือ จะแสดงข้อมูลใน Combobox ให้แสดง ข้อมูลรายละเอียดแต่ตอนทำการบันทึกให้เอา Value ไปใช้แทน เหมือนกับ ในเว็บไซต์ เช่น

<select name="province">
	<option value="56">เชียงใหม่</option>
	<option value="57">เชียงราย</option>
</select>

งง อยู่สักพัก เลยลองผิดลองถูกได้ความว่า สามารถทำได้ง่ายมากดังนี้
1. ทำการ Set Datasource ให้กับ Combobox และกำหนด DisplayMember และ ValueMember ดังนี้

//Query data to List<ListBoxModel>
List<ListBoxModel> lists = "แหล่งที่มาของข้อมูล";
cmbProvince.DataSource = lists;
cmbProvince.ValueMember = "id";
cmbProvince.DisplayMember = "name";

หมายเหตุ : Class ListBoxModel มี properties “name” และ “id” และ DataSource ยังสามารถใช้ข้อมูลได้หลากหลายรูปแบบด้วย แต่ผมชอบแบบนี้ที่สุด
2. ตอนดึงข้อมูล Code ที่ selected อยู่ก็แบบนี้

//ดึง Selected ID ออกมา
object id = cmbProvince.SelectedValue;
//ดึง Class ที่ bind ออกมา
ListBoxModel obj = (ListBoxModel)cmbProvince.SelectedItem;

3. ส่วนการ Set ค่าใส่ Combobox ก็ตามนี้เลยครับ

//ใส่ค่า ID โดยตรง
cmbProvince.SelectedValue = "ค่าที่ต้องการ";
//กรณีมีค่าที่ Display อยู่แล้ว
cmbProvince.FindByText("ค่าที่ต้องการ").Selected = true;
//กรณีรู้ค้า ID
cmbProvince.FindByValue("ค่า ID ที่ต้องการ").Selected = true;
//แบบรู้ลำดับ
cmbProvince.SelectedIndex = ลำดับที่ต้องการให้ เลือก (เป็นตัวเลข);
//ใช้ Display โดยตรง
cmbProvince.SelectedText = "ข้อความที่ต้องการ";

อันนี้ลองผิดลองถูกมา ท่านใดที่ทราบการใช้งานแบบง่ายกว่านี้ก็ ช่วยชี้แนะด้วยครับ

  1. No comments yet.

  1. No trackbacks yet.