XmlNodeChangedEventHandler Delegat

Definicja

Reprezentuje metodę, która obsługuje NodeChangedzdarzenia , NodeChanging, NodeInserted, NodeInsertingi NodeRemovingNodeRemoved .

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

Parametry

sender
Object

Źródło zdarzenia.

e
XmlNodeChangedEventArgs

Element XmlNodeChangedEventArgs zawierający dane zdarzenia.

Przykłady

W poniższym przykładzie pokazano, jak obsługiwać NodeChanged zdarzenia i 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

W przykładzie użyto pliku book.xml jako danych wejściowych.

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>

Uwagi

Podczas tworzenia delegata należy zidentyfikować metodę XmlNodeChangedEventHandler , która obsługuje zdarzenie. Aby skojarzyć zdarzenie z programem obsługi zdarzeń, dodaj wystąpienie delegata do zdarzenia. Program obsługi zdarzeń jest wywoływany przy każdym wystąpieniu zdarzenia, o ile nie usunięto delegata. Aby uzyskać więcej informacji na temat delegatów programu obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.

Metody rozszerzania

GetMethodInfo(Delegate)

Pobiera obiekt reprezentujący metodę reprezentowaną przez określonego delegata.

Dotyczy

Produkt Wersje
.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