/* User Interfaces in C#: Windows Forms and Custom Controls by Matthew MacDonald Publisher: Apress ISBN: 1590590457 */ using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; namespace DataBinding101 { /// <summary> /// Summary description for ObjectListBinding. /// </summary> public class ObjectListBinding : System.Windows.Forms.Form { internal System.Windows.Forms.ListBox lstCity; /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.Container components = null; public ObjectListBinding() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // } /// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.lstCity = new System.Windows.Forms.ListBox(); this.SuspendLayout(); // // lstCity // this.lstCity.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.lstCity.IntegralHeight = false; this.lstCity.Location = new System.Drawing.Point(4, 4); this.lstCity.Name = "lstCity"; this.lstCity.Size = new System.Drawing.Size(252, 216); this.lstCity.TabIndex = 2; this.lstCity.DoubleClick += new System.EventHandler(this.lstCity_DoubleClick); // // ObjectListBinding // this.AutoScaleBaseSize = new System.Drawing.Size(5, 14); this.ClientSize = new System.Drawing.Size(268, 230); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.lstCity}); this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.Name = "ObjectListBinding"; this.Text = "ObjectListBinding"; this.Load += new System.EventHandler(this.ObjectListBinding_Load); this.ResumeLayout(false); } #endregion private void ObjectListBinding_Load(object sender, System.EventArgs e) { City[] cityChoices = {new City("Seattle", "U.S.A."), new City("New York", "U.S.A."), new City("Tokyo", "Japan"), new City("Montreal", "Canada")}; lstCity.DataSource = cityChoices; lstCity.DisplayMember = "Name"; } private void lstCity_DoubleClick(object sender, System.EventArgs e) { MessageBox.Show(((City)lstCity.SelectedItem).Country); } [STAThread] static void Main() { Application.Run(new ObjectListBinding()); } } public class City { private string name; private string country; public string Name { get { return name; } set { name = value; } } public string Country { get { return country; } set { country = value; } } public City(string name, string country) { this.Name = name; this.Country = country; } } }