Leer en inglés

Compartir vía


XmlNodeChangedEventHandler Delegado

Definición

Representa el método que controla los eventos NodeChanged, NodeChanging, NodeInserted, NodeInserting, NodeRemoved y NodeRemoving.

C#
public delegate void XmlNodeChangedEventHandler(object sender, XmlNodeChangedEventArgs e);

Parámetros

sender
Object

Origen del evento.

e
XmlNodeChangedEventArgs

XmlNodeChangedEventArgs que contiene los datos del evento.

Ejemplos

En el ejemplo siguiente se muestra cómo controlar los NodeChanged eventos y NodeInserted .

C#
using System;
using System.IO;
using System.Xml;

namespace Microsoft.Samples.Xml
{
    public class Sample
    {
        private const String filename = "book.xml";

        public static void Main()
        {
            Sample mySample = new Sample();
            mySample.Run(filename);
        }

        public void Run(String args)
        {

            // Create and load the XML document.
            Console.WriteLine("Loading file {0} ...", args);
            XmlDocument doc = new XmlDocument();
            doc.Load(args);

            //Create the event handlers.
            doc.NodeChanged += new XmlNodeChangedEventHandler(this.MyNodeChangedEvent);
            doc.NodeInserted += new XmlNodeChangedEventHandler(this.MyNodeInsertedEvent);

            // Change the book price.
            doc.DocumentElement.LastChild.InnerText = "5.95";

            // Add a new element.
            XmlElement newElem = doc.CreateElement("style");
            newElem.InnerText = "hardcover";
            doc.DocumentElement.AppendChild(newElem);

            Console.WriteLine("\r\nDisplay the modified XML...");
            Console.WriteLine(doc.OuterXml);
        }

        // Handle the NodeChanged event.
        private void MyNodeChangedEvent(Object source, XmlNodeChangedEventArgs args)
        {
            Console.Write("Node Changed Event: <{0}> changed", args.Node.Name);
            if (args.Node.Value != null)
            {
                Console.WriteLine(" with value  {0}", args.Node.Value);
            }
            else
            {
                Console.WriteLine("");
            }
        }

        // Handle the NodeInserted event.
        private void MyNodeInsertedEvent(Object source, XmlNodeChangedEventArgs args)
        {
            Console.Write("Node Inserted Event: <{0}> inserted", args.Node.Name);
            if (args.Node.Value != null)
            {
                Console.WriteLine(" with value {0}", args.Node.Value);
            }
            else
            {
                Console.WriteLine("");
            }
        }
    } // End class

En el ejemplo se usa el archivo book.xml como entrada.

XML
<!--sample XML fragment-->
<book genre='novel' ISBN='1-861003-78' misc='sale-item'>
  <title>The Handmaid's Tale</title>
  <price>14.95</price>
</book>

Comentarios

Cuando se crea un XmlNodeChangedEventHandler delegado, se identifica el método que controla el evento. Para asociar el evento al controlador, se debe agregar una instancia del delegado al evento. Siempre que se produce el evento, se llama a su controlador, a menos que se quite el delegado. Para obtener más información sobre los delegados del controlador de eventos, vea Control y generación de eventos.

Métodos de extensión

GetMethodInfo(Delegate)

Obtiene un objeto que representa el método representado por el delegado especificado.

Se aplica a

Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 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
.NET Standard 2.0, 2.1
UWP 10.0