Leggere in inglese

Condividi tramite


Binding.BindingComplete Evento

Definizione

Si verifica quando la proprietà FormattingEnabled viene impostata su true e un'operazione di associazione viene completata, ad esempio quando i dati vengono spostati dal controllo all'origine dati o viceversa.

C#
public event System.Windows.Forms.BindingCompleteEventHandler BindingComplete;
C#
public event System.Windows.Forms.BindingCompleteEventHandler? BindingComplete;

Tipo evento

Esempio

Nell'esempio di codice seguente viene illustrato come gestire l'evento BindingComplete .

C#
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
        this.Controls.Add(this.textBox2);
        this.Controls.Add(this.textBox1);
        this.Controls.Add(this.textBox3);

        // 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",
            true);

        //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);
    }

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        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; }
        set
        {
            if (value.Length <= 0)
                throw new Exception("Each part must have a name.");
            else
                name = value;
        }
    }
    public double PartPrice
    {
        get { return price; }
        set { price = value; }
    }

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

Commenti

Questo evento viene generato in una delle condizioni seguenti quando FormattingEnabled è true:

  • I dati dell'origine dati vengono inseriti nella proprietà del controllo.

  • I dati della proprietà del controllo vengono inseriti nell'origine dati.

Questo evento viene generato al completamento di queste operazioni, indipendentemente dallo stato di completamento. Ad esempio, se un'operazione di associazione associa un valore Null a una Value proprietà, viene generata un'eccezione, ma l'evento BindingComplete si verifica ancora. Il gestore di questo evento può eseguire l'azione appropriata, in base all'esito positivo, all'errore o alle eccezioni nel processo di associazione, esaminando la BindingCompleteState proprietà del BindingCompleteEventArgs parametro.

Per ulteriori informazioni sulla gestione degli eventi, consultare gestione e generazione di eventi.

Si applica a

Prodotto Versioni
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Vedi anche