XmlNodeChangedEventHandler Delegato
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta il metodo che gestisce gli eventi NodeChanged, NodeChanging, NodeInserted, NodeInserting, NodeRemoved e NodeRemoving.
public delegate void XmlNodeChangedEventHandler(System::Object ^ sender, XmlNodeChangedEventArgs ^ e);
public delegate void XmlNodeChangedEventHandler(object sender, XmlNodeChangedEventArgs e);
type XmlNodeChangedEventHandler = delegate of obj * XmlNodeChangedEventArgs -> unit
Public Delegate Sub XmlNodeChangedEventHandler(sender As Object, e As XmlNodeChangedEventArgs)
Parametri
- sender
- Object
Origine dell'evento.
Oggetto XmlNodeChangedEventArgs che contiene i dati dell'evento.
Esempio
Nell'esempio seguente viene illustrato come gestire gli NodeChanged
eventi e NodeInserted
.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
public ref class Sample
{
public:
void Run( String^ args )
{
// Create and load the XML document.
Console::WriteLine( "Loading file {0} ...", args );
XmlDocument^ doc = gcnew XmlDocument;
doc->Load( args );
//Create the event handlers.
doc->NodeChanged += gcnew XmlNodeChangedEventHandler( this, &Sample::MyNodeChangedEvent );
doc->NodeInserted += gcnew XmlNodeChangedEventHandler( this, &Sample::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^ /*src*/, XmlNodeChangedEventArgs^ args )
{
Console::Write( "Node Changed Event: <{0}> changed", args->Node->Name );
if ( args->Node->Value != nullptr )
{
Console::WriteLine( " with value {0}", args->Node->Value );
}
else
Console::WriteLine( "" );
}
// Handle the NodeInserted event.
void MyNodeInsertedEvent( Object^ /*src*/, XmlNodeChangedEventArgs^ args )
{
Console::Write( "Node Inserted Event: <{0}> inserted", args->Node->Name );
if ( args->Node->Value != nullptr )
{
Console::WriteLine( " with value {0}", args->Node->Value );
}
else
Console::WriteLine( "" );
}
};
// End class
int main()
{
Sample^ mySample = gcnew Sample;
mySample->Run( "book.xml" );
}
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
Imports System.IO
Imports System.Xml
Namespace Microsoft.Samples.Xml
Public Class Sample
Private Const filename As String = "book.xml"
Public Shared Sub Main()
Dim mySample As Sample = New Sample()
mySample.Run(filename)
End Sub
Public Sub Run(ByVal args As String)
' Create and load the XML document.
Console.WriteLine("Loading file {0} ...", args)
Dim doc As XmlDocument = New XmlDocument()
doc.Load(args)
'Create the event handlers.
AddHandler doc.NodeChanged, AddressOf MyNodeChangedEvent
AddHandler doc.NodeInserted, AddressOf MyNodeInsertedEvent
' Change the book price.
doc.DocumentElement.LastChild.InnerText = "5.95"
' Add a new element.
Dim newElem As XmlElement = doc.CreateElement("style")
newElem.InnerText = "hardcover"
doc.DocumentElement.AppendChild(newElem)
Console.WriteLine()
Console.WriteLine("Display the modified XML...")
Console.WriteLine(doc.OuterXml)
End Sub
' Handle the NodeChanged event.
Private Sub MyNodeChangedEvent(ByVal source As Object, ByVal args As XmlNodeChangedEventArgs)
Console.Write("Node Changed Event: <{0}> changed", args.Node.Name)
If Not (args.Node.Value Is Nothing) Then
Console.WriteLine(" with value {0}", args.Node.Value)
Else
Console.WriteLine("")
End If
End Sub
' Handle the NodeInserted event.
Private Sub MyNodeInsertedEvent(ByVal source As Object, ByVal args As XmlNodeChangedEventArgs)
Console.Write("Node Inserted Event: <{0}> inserted", args.Node.Name)
If Not (args.Node.Value Is Nothing) Then
Console.WriteLine(" with value {0}", args.Node.Value)
Else
Console.WriteLine("")
End If
End Sub
End Class
End Namespace
Nell'esempio viene usato il file book.xml
come input.
<!--sample XML fragment-->
<book genre='novel' ISBN='1-861003-78' misc='sale-item'>
<title>The Handmaid's Tale</title>
<price>14.95</price>
</book>
Commenti
Quando si crea un XmlNodeChangedEventHandler
delegato, si identifica il metodo che gestisce l'evento. Per associare l'evento al gestore eventi in uso, aggiungere all'evento un'istanza del delegato. Il gestore eventi viene chiamato ogni volta che si verifica l'evento, a meno che non venga rimosso il delegato. Per altre informazioni sui delegati del gestore eventi, vedere Gestione e generazione di eventi.
Metodi di estensione
GetMethodInfo(Delegate) |
Ottiene un oggetto che rappresenta il metodo rappresentato dal delegato specificato. |