BindingCompleteState Enumeration


Indicates the result of a completed binding operation.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public enum BindingCompleteState

Member nameDescription

An indication that the binding operation failed with a data error.


An indication that the binding operation failed with an exception.


An indication that the binding operation completed successfully.

The BindingCompleteState is used by the BindingCompleteEventArgs type.

The following code example demonstrates handling the BindingComplete event and using the BindingCompleteState. To run this code, paste it into an empty code file.

using System;
using System.Drawing;
using System.Windows.Forms;

class Form1 : Form
	private BindingSource BindingSource1 = new BindingSource();
	private TextBox textBox1 = new TextBox();
	private TextBox textBox2 = new TextBox();
	private TextBox textBox3 = new TextBox();

	public Form1()
		//Set up the textbox controls.
		this.textBox1.Location = new System.Drawing.Point(82, 13);
		this.textBox1.TabIndex = 1;
		this.textBox2.Location = new System.Drawing.Point(81, 47);
		this.textBox2.TabIndex = 2;
		this.textBox3.Location = new System.Drawing.Point(81, 83);
		this.textBox3.TabIndex = 3;

		// Add the textbox controls to the form

		// Handle the form's Load event.
		this.Load += new System.EventHandler(this.Form1_Load);
	Binding partNameBinding;
	Binding partNumberBinding;

	private void Form1_Load(object sender, EventArgs e)
		// Set the DataSource of BindingSource1 to the Part type.
		BindingSource1.DataSource = typeof(Part);

		// Bind the textboxes to the properties of the Part type, 
		// enabling formatting.
		partNameBinding = textBox1.DataBindings.Add("Text",
			BindingSource1, "PartName", true);

		partNumberBinding = textBox2.DataBindings.Add("Text", BindingSource1, "PartNumber",

		//Bind the textbox to the PartPrice value with currency formatting.
		textBox3.DataBindings.Add("Text", BindingSource1, "PartPrice", true,
			DataSourceUpdateMode.OnPropertyChanged, 0, "C");

		// Handle the BindingComplete event for BindingSource1 and 
		// the partNameBinding.
		partNumberBinding.BindingComplete +=
			new BindingCompleteEventHandler(partNumberBinding_BindingComplete);
		partNameBinding.BindingComplete +=
			new BindingCompleteEventHandler(partNameBinding_BindingComplete);

		// Add a new part to BindingSource1.
		BindingSource1.Add(new Part("Widget", 1234, 12.45));

	// Handle the BindingComplete event to catch errors and exceptions 
	// in binding process.
	void partNumberBinding_BindingComplete(object sender,
		BindingCompleteEventArgs e)
		if (e.BindingCompleteState != BindingCompleteState.Success)
			MessageBox.Show("partNumberBinding: " + e.ErrorText);

	// Handle the BindingComplete event to catch errors and 
	// exceptions in binding process.
	void partNameBinding_BindingComplete(object sender,
		BindingCompleteEventArgs e)
		if (e.BindingCompleteState != BindingCompleteState.Success)
			MessageBox.Show("partNameBinding: " + e.ErrorText);

	static void Main()
		Application.Run(new Form1());

// Represents a business object that throws exceptions when invalid values are
// entered for some of its properties.
public class Part
	private string name;
	private int number;
	private double price;

	public Part(string name, int number, double price)
		PartName = name;
		PartNumber = number;
		PartPrice = price;

	public string PartName
		get { return name; }
			if (value.Length <= 0)
				throw new Exception("Each part must have a name.");
				name = value;
	public double PartPrice
		get { return price; }
		set { price = value; }

	public int PartNumber
		get { return number; }
			if (value < 100)
				throw new Exception("Invalid part number." +
					" Part numbers must be greater than 100.");
				number = value;

.NET Framework
Available since 2.0
Return to top