เกริ่นนำ
ช่วงสงกรานต์ก็หยุดกันยาวเลย ว่าจะให้เวลาเขียนบทความกับความรู้ใหม่ๆ ก็เป็นอันว่าไม่มีเวลาทำกัน วันนี้ก็กะจะรวบยอดเรื่องที่ได้ทำในช่วงที่ผ่านมาไว้ในอันเดียวเลยไม่รู้จะมีเวลาพอหรือเปล่าไม่ทราบ มาเข้าเรื่องกันเลย การสร้างฟอร์มบน Windows Application นั้น ส่วนมากจะใช้ตัว bindingSouce เข้ามาร่วมใช้งาน นอกจากนี้อีกตัวที่ใช้คู่กันก็คือ bindingNavigator เรามาเริ่มทำงานกับฟอร์มโดยการสร้างฟอร์มกันขึ้นมาเลยตามตัวอย่างด้านล่าง
ช่วงสงกรานต์ก็หยุดกันยาวเลย ว่าจะให้เวลาเขียนบทความกับความรู้ใหม่ๆ ก็เป็นอันว่าไม่มีเวลาทำกัน วันนี้ก็กะจะรวบยอดเรื่องที่ได้ทำในช่วงที่ผ่านมาไว้ในอันเดียวเลยไม่รู้จะมีเวลาพอหรือเปล่าไม่ทราบ มาเข้าเรื่องกันเลย การสร้างฟอร์มบน Windows Application นั้น ส่วนมากจะใช้ตัว bindingSouce เข้ามาร่วมใช้งาน นอกจากนี้อีกตัวที่ใช้คู่กันก็คือ bindingNavigator เรามาเริ่มทำงานกับฟอร์มโดยการสร้างฟอร์มกันขึ้นมาเลยตามตัวอย่างด้านล่าง
๑. รูปแสดงหน้าจอการออกแบบฟอร์ม
เนื้อหาสำคัญไม่ได้อยู่ที่เทคนิคการออกแบบนะครับ ขอเน้นเทคนิดทางด้านโปรแกรมมิ่ง หลังจากเราได้ทำการออกแบบฟอร์มเรียบร้อยแล้วก็จะมาถึงจุดสำคัญคือ การกำหนด DataBinding ให้กับ TextBox ผมได้ทำเป็นเมธอร์ดไว้ดังนี้
เนื้อหาสำคัญไม่ได้อยู่ที่เทคนิคการออกแบบนะครับ ขอเน้นเทคนิดทางด้านโปรแกรมมิ่ง หลังจากเราได้ทำการออกแบบฟอร์มเรียบร้อยแล้วก็จะมาถึงจุดสำคัญคือ การกำหนด DataBinding ให้กับ TextBox ผมได้ทำเป็นเมธอร์ดไว้ดังนี้
private void SetupPropertieText() { //Info textEdit2.DataBindings.Add("Text", bindingCompanyData, "Street"); textEdit3.DataBindings.Add("Text", bindingCompanyData, "Place"); textEdit4.DataBindings.Add("Text", bindingCompanyData, "Country"); textEdit6.DataBindings.Add("Text", bindingCompanyData, "Phone"); textEdit18.DataBindings.Add("Text", bindingCompanyData, "Email"); textEdit1.DataBindings.Add("Text", bindingCompanyData, "HouseNumber"); textEdit5.DataBindings.Add("Text", bindingCompanyData, "ZipCode"); textEdit7.DataBindings.Add("Text", bindingCompanyData, "Company_Code"); textEdit8.DataBindings.Add("Text", bindingCompanyData, "Fax"); textEdit21.DataBindings.Add("Text", bindingCompanyData, "WorkArea"); //Contact textEdit14.DataBindings.Add("Text", bindingCompanyData, "Contact_Name"); textEdit13.DataBindings.Add("Text", bindingCompanyData, "Contact_Email"); textEdit16.DataBindings.Add("Text", bindingCompanyData, "Contact_Phone"); textEdit15.DataBindings.Add("Text", bindingCompanyData, "Contact_Fax"); //Billing textEdit20.DataBindings.Add("Text", bindingCompanyData, "BillingStreet"); textEdit12.DataBindings.Add("Text", bindingCompanyData, "BillingHouseNumber"); textEdit19.DataBindings.Add("Text", bindingCompanyData, "BillingPlace"); textEdit11.DataBindings.Add("Text", bindingCompanyData, "BillingZipCode"); textEdit10.DataBindings.Add("Text", bindingCompanyData, "BillingCountry"); textEdit17.DataBindings.Add("Text", bindingCompanyData, "DebitNumber"); textEdit9.DataBindings.Add("Text", bindingCompanyData, "CreditNumber"); }
จากโค้ดได้แสดงถึงการเชื่อม TextBox ให้ bindingSource รู้จักรวมทั้งเชื่อมการทำงานร่วมกับ bindingNavigator ในคราวเดียวกันด้วย
การใช้งานร่วมกับ ชนิดข้อมูลอื่นๆ
จากตัวอย่างด้านบนเราได้ทำชนิดข้อมูลที่เป็น Text ตามโค้ด
จากตัวอย่างด้านบนเราได้ทำชนิดข้อมูลที่เป็น Text ตามโค้ด
textEdit2.DataBindings.Add("Text", bindingCompanyData, "Street");
เรามาดูชนิดข้อมูลอื่นๆ กันบ้างว่า bindingSource จะรู้จักกันได้อย่างไร
Number Format
Number Format
Binding fteBinding = new Binding("Text", bindingEmployee, "FTE", true); fteBinding.FormatString = "0"; fteBinding.NullValue = "0"; textEdit18.DataBindings.Add(fteBinding);
อย่างแรกเราต้องกำหนดรูปแบบ data binding ใหม่ขึ้นมา แต่เราไปกำหนดรูปแบบเป็นชนิดตัวเลข fteBinding.FormatString = “0″; เพื่อให้รูว่าชนิดข้อมูลเป็นตัวเลข และ NullValue = “0″; ตามตัวอย่าง
DateTime Format
// Date Format Style Binding dstBinding = new Binding("Text", bindingEmployee, "DateStarted", true); dstBinding.FormatString = "d"; dstBinding.NullValue = "<unknown>";
จะเหมือนกับ Number Format นะครับ
ComboBox Value
comboBox1.DataBindings.Add("SelectedValue",this.bindingEmployee, "Function_ID"); //หรือ comboBox1.DataBindings.Add("SelectedItem",this.bindingEmployee, "Function_ID");
ส่วนอันสุดท้ายเป็นการประยุกต์ให้ใช้งานกับ ComboBox ซึ่งจะมีความแตกต่างกันเล็กน้อย และมีโค้ดที่เกี่ยวข้องกับการ Load Data to ComboBox ดังนี้
private PlanningModelDataContext db = new PlanningModelDataContext(); var planFunction = from pf in db.Planning_Functions orderby pf.Function_Name select pf; bindingFunction.DataSource = planFunction; comboBox1.DataSource = bindingFunction; comboBox1.DisplayMember = "Function_Name"; comboBox1.ValueMember = "Function_ID";
สรุป
มีเวลาเขียนน้อยไปหน่อย ตอนเย็นๆ จะลองเขียนเพิ่มใหม่นะครับ เพราะช่วงที่ผ่านมาทำอะไรไปเยอะมากทีเดียว
มีเวลาเขียนน้อยไปหน่อย ตอนเย็นๆ จะลองเขียนเพิ่มใหม่นะครับ เพราะช่วงที่ผ่านมาทำอะไรไปเยอะมากทีเดียว
ref : http://www.codemarts.com/2010/06/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%E0%B8%9F%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%A1-databinding-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-c/
No comments:
Post a Comment