BindingCompleteEventArgs 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为 BindingComplete 事件提供数据。
public ref class BindingCompleteEventArgs : System::ComponentModel::CancelEventArgs
public class BindingCompleteEventArgs : System.ComponentModel.CancelEventArgs
type BindingCompleteEventArgs = class
inherit CancelEventArgs
Public Class BindingCompleteEventArgs
Inherits CancelEventArgs
- 继承
示例
下面的代码示例演示如何处理 BindingComplete 事件。 若要运行此代码,请将其粘贴到空的代码文件中。
// Represents a business object that throws exceptions when
// invalid values are entered for some of its properties.
public ref class Part
{
private:
String^ name;
int number;
double price;
public:
Part(String^ name, int number, double price)
{
PartName = name;
PartNumber = number;
PartPrice = price;
}
property String^ PartName
{
String^ get()
{
return name;
}
void set(String^ value)
{
if (value->Length <= 0)
{
throw gcnew Exception(
"Each part must have a name.");
}
else
{
name = value;
}
}
}
property double PartPrice
{
double get()
{
return price;
}
void set(double value)
{
price = value;
}
}
property int PartNumber
{
int get()
{
return number;
}
void set(int value)
{
if (value < 100)
{
throw gcnew Exception(
"Invalid part number." \
"Part numbers must be " \
"greater than 100.");
}
else
{
number = value;
}
}
}
};
ref class MainForm: public Form
{
private:
BindingSource^ bindingSource;
TextBox^ partNameTextBox;
TextBox^ partNumberTextBox;
TextBox^ partPriceTextBox;
public:
MainForm()
{
bindingSource = gcnew BindingSource;
partNameTextBox = gcnew TextBox;
partNumberTextBox = gcnew TextBox;
partPriceTextBox = gcnew TextBox;
//Set up the textbox controls.
this->partNameTextBox->Location = Point(82, 13);
this->partNameTextBox->TabIndex = 1;
this->partNumberTextBox->Location = Point(81, 47);
this->partNumberTextBox->TabIndex = 2;
this->partPriceTextBox->Location = Point(81, 83);
this->partPriceTextBox->TabIndex = 3;
// Add the textbox controls to the form
this->Controls->Add(this->partNumberTextBox);
this->Controls->Add(this->partNameTextBox);
this->Controls->Add(this->partPriceTextBox);
// Handle the form's Load event.
this->Load += gcnew EventHandler(this,
&MainForm::OnMainFormLoad);
}
private:
void OnMainFormLoad(Object^ sender, EventArgs^ e)
{
// Set the DataSource of bindingSource to the Part type.
bindingSource->DataSource = Part::typeid;
// Bind the textboxes to the properties of the Part type,
// enabling formatting.
partNameTextBox->DataBindings->Add(
"Text", bindingSource, "PartName", true);
partNumberTextBox->DataBindings->Add(
"Text", bindingSource, "PartNumber", true);
//Bind the textbox to the PartPrice value
// with currency formatting.
partPriceTextBox->DataBindings->Add("Text", bindingSource, "PartPrice", true,
DataSourceUpdateMode::OnPropertyChanged, nullptr, "C");
// Handle the BindingComplete event for bindingSource and
// the partNameBinding.
bindingSource->BindingComplete +=
gcnew BindingCompleteEventHandler(this,
&MainForm::OnBindingSourceBindingComplete);
bindingSource->BindingComplete +=
gcnew BindingCompleteEventHandler(this,
&MainForm::OnPartNameBindingBindingComplete);
// Add a new part to bindingSource.
bindingSource->Add(gcnew Part("Widget", 1234, 12.45));
}
// Handle the BindingComplete event to catch errors and
// exceptions in binding process.
void OnBindingSourceBindingComplete(Object^ sender,
BindingCompleteEventArgs^ e)
{
if (e->BindingCompleteState ==
BindingCompleteState::Exception)
{
MessageBox::Show(String::Format(
CultureInfo::CurrentCulture,
"bindingSource: {0}", e->Exception->Message));
}
if (e->BindingCompleteState ==
BindingCompleteState::DataError)
{
MessageBox::Show(String::Format(
CultureInfo::CurrentCulture,
"bindingSource: {0}", e->Exception->Message));
}
}
// Handle the BindingComplete event to catch errors and
// exceptions in binding process.
void OnPartNameBindingBindingComplete(Object^ sender,
BindingCompleteEventArgs^ e)
{
if (e->BindingCompleteState ==
BindingCompleteState::Exception)
{
MessageBox::Show(String::Format(
CultureInfo::CurrentCulture,
"PartNameBinding: {0}", e->Exception->Message));
}
if (e->BindingCompleteState ==
BindingCompleteState::DataError)
{
MessageBox::Show(String::Format(
CultureInfo::CurrentCulture,
"PartNameBinding: {0}", e->Exception->Message));
}
}
};
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;
}
}
}
Imports System.Drawing
Imports System.Windows.Forms
Class Form1
Inherits Form
Private BindingSource1 As New BindingSource()
Private textBox1 As New TextBox()
Private textBox2 As New TextBox()
Private textBox3 As New TextBox()
Public Sub New()
'Set up the textbox controls.
Me.textBox1.Location = New System.Drawing.Point(82, 13)
Me.textBox1.TabIndex = 1
Me.textBox2.Location = New System.Drawing.Point(81, 47)
Me.textBox2.TabIndex = 2
Me.textBox3.Location = New System.Drawing.Point(81, 83)
Me.textBox3.TabIndex = 3
' Add the textbox controls to the form
Me.Controls.Add(Me.textBox2)
Me.Controls.Add(Me.textBox1)
Me.Controls.Add(Me.textBox3)
End Sub
Private WithEvents partNameBinding As Binding
Private WithEvents partNumberBinding As Binding
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _
Handles Me.Load
' Set the DataSource of BindingSource1 to the Part type.
BindingSource1.DataSource = GetType(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")
' Add a new part to BindingSource1.
BindingSource1.Add(New Part("Widget", 1234, 12.45))
End Sub
' Handle the BindingComplete event to catch errors and exceptions
' in binding process.
Sub partNumberBinding_BindingComplete(ByVal sender As Object, _
ByVal e As BindingCompleteEventArgs) _
Handles partNumberBinding.BindingComplete
If Not e.BindingCompleteState = BindingCompleteState.Success Then
MessageBox.Show("partNumberBinding: " + e.ErrorText)
End If
End Sub
' Handle the BindingComplete event to catch errors and exceptions
' in binding process.
Sub partNameBinding_BindingComplete(ByVal sender As Object, _
ByVal e As BindingCompleteEventArgs) _
Handles partNameBinding.BindingComplete
If Not e.BindingCompleteState = BindingCompleteState.Success Then
MessageBox.Show("partNameBinding: " + e.ErrorText)
End If
End Sub
<STAThread()> _
Shared Sub Main()
Application.EnableVisualStyles()
Application.Run(New Form1())
End Sub
End Class
' Represents a business object that throws exceptions when invalid
' values are entered for some of its properties.
Public Class Part
Private name As String
Private number As Integer
Private price As Double
Public Sub New(ByVal name As String, ByVal number As Integer, _
ByVal price As Double)
PartName = name
PartNumber = number
PartPrice = price
End Sub
Public Property PartName() As String
Get
Return name
End Get
Set(ByVal value As String)
If Value.Length <= 0 Then
Throw New Exception("Each part must have a name.")
Else
name = Value
End If
End Set
End Property
Public Property PartPrice() As Double
Get
Return price
End Get
Set(ByVal value As Double)
price = Value
End Set
End Property
Public Property PartNumber() As Integer
Get
Return number
End Get
Set(ByVal value As Integer)
If Value < 100 Then
Throw New Exception("Invalid part number." _
& " Part numbers must be greater than 100.")
Else
number = Value
End If
End Set
End Property
End Class
注解
BindingCompleteEventArgs包含有关绑定过程中发生的异常或错误的信息。
构造函数
BindingCompleteEventArgs(Binding, BindingCompleteState, BindingCompleteContext) |
使用指定的绑定、错误状态和绑定上下文初始化 BindingCompleteEventArgs 类的新实例。 |
BindingCompleteEventArgs(Binding, BindingCompleteState, BindingCompleteContext, String) |
使用指定的绑定、错误状态和文本以及绑定上下文初始化 BindingCompleteEventArgs 类的新实例。 |
BindingCompleteEventArgs(Binding, BindingCompleteState, BindingCompleteContext, String, Exception) |
使用指定的绑定、错误状态和文本、绑定上下文以及异常初始化 BindingCompleteEventArgs 类的新实例。 |
BindingCompleteEventArgs(Binding, BindingCompleteState, BindingCompleteContext, String, Exception, Boolean) |
使用指定的绑定、错误状态和文本、绑定上下文、异常以及有关绑定是否应该取消的信息初始化 BindingCompleteEventArgs 类的新实例。 |
属性
Binding |
获取与此次 BindingComplete 事件的发生相关联的绑定。 |
BindingCompleteContext |
获取绑定操作的方向。 |
BindingCompleteState |
获取绑定操作的完成状态。 |
Cancel |
获取或设置指示是否应取消事件的值。 (继承自 CancelEventArgs) |
ErrorText |
获取绑定操作过程中发生的错误的文本说明。 |
Exception |
获取绑定操作过程中发生的异常。 |
方法
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |