將數據集合綁定到多值控件上
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using NorthwindDataAccess;
namespace ComboBoxSelectedValue
{
public partial class SelectedValueForm : Form
{
public SelectedValueForm()
{
InitializeComponent();
}
private void OnFormLoad(object sender, EventArgs e)
{
// Get the data and
m_CustomersDataSet = CustomersDataSet.GetCustomers();
// Set up the bindings for the combo boxes
m_CompanyNameCombo.DataSource = m_CustomersDataSet.Customers;
m_CompanyNameCombo.DisplayMember = "CompanyName";
m_CompanyNameCombo.ValueMember = "CustomerID";
m_ContactNameCombo.DataSource = m_CustomersDataSet.Customers;
m_ContactNameCombo.DisplayMember = "ContactName";
m_ContactNameCombo.ValueMember = "Phone";
// Hook up event handlers for selection change events
m_CompanyNameCombo.SelectedIndexChanged += OnComboSelectionChanged;
m_ContactNameCombo.SelectedIndexChanged += OnComboSelectionChanged;
}
private void OnComboSelectionChanged(object sender, EventArgs args)
{
if (m_ContactNameCombo.SelectedValue == null || m_CompanyNameCombo.SelectedValue == null)
return;
m_CustomerIDTextBox.Text = m_CompanyNameCombo.SelectedValue.ToString();
m_ContactPhoneTextBox.Text = m_ContactNameCombo.SelectedValue.ToString();
}
}
}
在這個例子中,組合框控件m_CompanyNameCombo和m_ContactNameCombo綁定到強類型數據集的Customers表。兩個組合框的DisplayMember屬性分別被設置為對應的CompanyName和ContactName屬性(列),從而將Customers表中的每個數據項顯示為組合框中的文本。更進一步,第一個組合框控件m_CompanyNameCombo的ValueMember屬性被設置為CustomerID屬性值,而第二個下拉列表框被設置為Phone屬性。這樣做,當每次訪問SelectedValue屬性的時候,組合框的SelectedValue屬性將給出的是在組合框中當前項的ValueMember屬性值。