Presentation is loading. Please wait.

Presentation is loading. Please wait.

CST238 Week 7 Questions / Concerns? Announcements – HW#2 due today (project concept/preliminary design) – Check-off Take Home lab#6 Friday is the last.

Similar presentations


Presentation on theme: "CST238 Week 7 Questions / Concerns? Announcements – HW#2 due today (project concept/preliminary design) – Check-off Take Home lab#6 Friday is the last."— Presentation transcript:

1 CST238 Week 7 Questions / Concerns? Announcements – HW#2 due today (project concept/preliminary design) – Check-off Take Home lab#6 Friday is the last day to withdraw from class. GUI Bloopers presentations (#3&#4) New topics – Data Binding Coming up: – GUI Presentation #5 & #6 next Monday – WPF vs Windows Forms – Work on Final Project Take Home Lab#7

2 Why Data Binding? Windows Forms Problem – There is no clear separation of user interface and data. – Controls and data are tightly coupled. Data binding doesn’t address this problem of tightly coupled UI and data, but it saves programmers some work: – Don’t have to write code to move data in and out of controls.

3 Data Binding One-way: Automatically populating controls with data – Set a few properties Two-way: Automatically propagating changes to data – From control to data source

4 Data Binding Core capability of.NET controls – Web and Windows – Built in at base Control level Interface-based – An interface contains only the signatures of methods, properties, or events.methodsproperties – A class or struct that implements the interface must implement the members of the interface that are specified in the interface definition.

5 Data Binding Simple data binding Bind a single value from a data collection to a single control property Ex: customer name to Text property on Textbox Complex data binding Bind collection of data to control that presents multiple values from collection Ex: customers table in grid, customer name values in combo box.

6 Data Binding Simple data binding – Create a Binding object – Add to DataBindings collection of control Complex data binding – Set data source – Set data member – DisplayMember and ValueMember for ComboBox and List Box controls

7 C#: Fields & Properties of an object Fields – Internal data / state of an object. (ex. age) – Fields should not be public. – How do you access the field then? Through methods (GetAge, SetAge) Method – Behavior. – Getters/setters are not really behavior though. Property – Another way to access the field

8 C#: Property class Student { private int age; //private field public int Age //Public property { get {return age;} set { age = value;} }… Student aStudent = new Student(); aStudent.age = 35; aStudent.Age = 35; //value is 35 if (aStudent.Age == 35) …

9 C#: Property class Student { private int age; //private field public int Age //Public property { get {return age;} set { age = value;} }… public int Age {get; set;}

10 Simple Data Binding Binding object which binds control properties to object properties. aStudent = new Student("Smith", "Gail", "918111111", true); LastnameBox.DataBindings.Add("Text", aStudent, "Lastname"); FirstnameBox.DataBindings.Add("Text", aStudent, "Firstname"); IDBox.DataBindings.Add("Text", aStudent, "ID"); RegisteredCheckbox.DataBindings.Add("Checked", aStudent, "Registered"); aStudent Lastname Smith Firstname Gail ID 918111111 Registered true

11 Simple Data Binding Binding object which binds control properties to object properties. aStudent = new Student("Smith", "Gail", "918111111", true); LastnameBox.DataBindings.Add("Text", aStudent, "Lastname“, true, DataSourceUpdateMode.OnPropertyChanged); FirstnameBox.DataBindings.Add("Text", aStudent, "Firstname“, true, DataSourceUpdateMode.OnPropertyChanged); IDBox.DataBindings.Add("Text", aStudent, "ID“, true, DataSourceUpdateMode.Never); RegisteredCheckbox.DataBindings.Add("Checked", aStudent, "Registered“, true, DataSourceUpdateMode.OnPropertyChanged); Lastname Smith Firstname Gail ID 918111111 Registered true

12 Complex Data Binding Bind a collection of data to a control Collection must implement IList or IListSource interface Student Major List demo – Tab Control – Combo box & binding DisplayMember (MajorName object property), ValueMember (MajorCode object property) DataSource – Listbox, query & binding DataSource, DisplayMember – Datagrid view DataSource

13 Take-Home Lab #7 Create a Category class with 2 properties: – CategoryID (int) – CategoryName (string) Create a Product class with 4 properties: – ProductName (string) – CategoryID (int) – Unit Price (float) – OnSale (bool)

14 Take Home Lab #7 Create a form: – Combo box to show the list of product categories – Listbox to show the products – Textboxes and checkbox bound to selected product.


Download ppt "CST238 Week 7 Questions / Concerns? Announcements – HW#2 due today (project concept/preliminary design) – Check-off Take Home lab#6 Friday is the last."

Similar presentations


Ads by Google