DataTableCollection.CollectionChanged Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит после изменения коллекции DataTableCollection в результате добавления или удаления объектов DataTable.
public:
event System::ComponentModel::CollectionChangeEventHandler ^ CollectionChanged;
public event System.ComponentModel.CollectionChangeEventHandler? CollectionChanged;
public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged;
member this.CollectionChanged : System.ComponentModel.CollectionChangeEventHandler
Public Custom Event CollectionChanged As CollectionChangeEventHandler
Тип события
Примеры
В следующем примере показано, как использовать CollectionChanged событие .
public static void TableCollectionCollectionChanged()
{
// create a DataSet with two tables
DataSet dataSet = new DataSet();
dataSet.Tables.CollectionChanged +=
new System.ComponentModel.CollectionChangeEventHandler(
Collection_Changed);
// create Customer table
DataTable custTable = new DataTable("Customers");
custTable.Columns.Add("customerId",
typeof(int)).AutoIncrement = true;
custTable.Columns.Add("name",
typeof(string));
custTable.PrimaryKey = new DataColumn[] { custTable.Columns["customerId"] };
// create Orders table
DataTable orderTable = new DataTable("Orders");
orderTable.Columns.Add("orderId",
typeof(int)).AutoIncrement = true;
orderTable.Columns.Add("customerId", typeof(int));
orderTable.Columns.Add("amount", typeof(double));
orderTable.PrimaryKey = new DataColumn[] { orderTable.Columns["orderId"] };
dataSet.Tables.AddRange(new DataTable[] { custTable, orderTable });
// remove all tables
// check if table can be removed and then
// remove it, cannot use a foreach when
// removing items from a collection
// equivalent to dataSet.Tables.Clear()
while (dataSet.Tables.Count > 0)
{
DataTable table = dataSet.Tables[0];
if (dataSet.Tables.CanRemove(table))
{
dataSet.Tables.RemoveAt(0);
}
}
Console.WriteLine("dataSet has {0} tables",
dataSet.Tables.Count);
}
private static void Collection_Changed(object sender,
System.ComponentModel.CollectionChangeEventArgs e)
{
Console.WriteLine("Collection_Changed Event: '{0}'\table element={1}",
e.Action.ToString(), e.Element.ToString());
}
Public Sub TableCollectionCollectionChanged()
' create a DataSet with two tables
Dim dataSet As New DataSet()
AddHandler dataSet.Tables.CollectionChanging, _
AddressOf Collection_Changed
' create Customer table
Dim custTable As New DataTable("Customers")
custTable.Columns.Add("customerId", _
System.Type.GetType("System.Integer")).AutoIncrement = True
custTable.Columns.Add("name", System.Type.GetType("System.String"))
custTable.PrimaryKey = New DataColumn() {custTable.Columns("customerId")}
' create Orders table
Dim orderTable As New DataTable("Orders")
orderTable.Columns.Add("orderId", _
System.Type.GetType("System.Integer")).AutoIncrement = True
orderTable.Columns.Add("customerId", System.Type.GetType("System.Integer"))
orderTable.Columns.Add("amount", System.Type.GetType("System.Double"))
orderTable.PrimaryKey = New DataColumn() {orderTable.Columns("orderId")}
dataSet.Tables.AddRange(New DataTable() {custTable, orderTable})
' Now remove all tables.
' First check to see if the table can be removed,
' then remove it from the collection.
'
' You cannot use a For Each loop when
' removing items from a collection.
Do While (dataSet.Tables.Count > 0)
Dim table As DataTable = dataSet.Tables(0)
If (dataSet.Tables.CanRemove(table)) Then
dataSet.Tables.RemoveAt(0)
End If
Loop
Console.WriteLine("dataSet has {0} tables", dataSet.Tables.Count)
End Sub
Private Sub Collection_Changed(ByVal sender As Object, _
ByVal e As System.ComponentModel.CollectionChangeEventArgs)
Console.WriteLine("Collection_Changed Event: '{0}'\table element={1}", _
e.Action.ToString(), e.Element.ToString())
End Sub
Комментарии
Дополнительные сведения об обработке событий см. в разделе Обработка и вызов событий.
Применяется к
GitHub сайтында бізбен бірлесіп жұмыс істеу
Бұл мазмұнның көзін GitHub сайтында табуға болады. Онда сонымен бірге мәселелер мен өзгертулерді енгізу сұрауларын жасауға және қарап шығуға болады. Қосымша ақпарат алу үшін қатысушы нұсқаулығын қараңыз.