By adding a new element to the
root node, the defined event is fired. LINQ to XML handles the event notifications when the XML tree is
altered.
XElement empXML = new XElement("Employees",
new XElement("Employee",
new XAttribute("id", "1"),
new XAttribute("Dept", "0001"),
new XElement("Name", "Scott"),
new XElement("Address",
new XElement("Street", "555 Main St."),
new XElement("City", "Wellington"),
new XElement("State", "FL"),
new XElement("Zip", "33414")),
new XElement("Title", "All Things Techy"),
new XElement("HireDate", "02/05/2007"),
new XElement("Gender", "M")
)
);
empXML.Changing += new XObjectChangeEventHandler(delegate(object xsender,
XObjectChangeEventArgs cea)
{
listBox1.Items.Add("Changing event raised");
XElement newEl = (XElement)xsender;
listBox1.Items.Add(" Sender: " + newEl.Name);
listBox1.Items.Add(" ObjectChange: " + cea.ObjectChange);
}
);
empXML.Element("Employee").Add(new XElement("Nickname", "scooter"));
168
Chapter 8: Advanced LINQ to XML Programming Topics
When this code runs, the following displays in the list box:
Changing event raised
Sender: Nickname
ObjectChanged: Add
The first item simply states that the Changing event was raised.
Pages:
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291