XObject.Changing XObject.Changing XObject.Changing XObject.Changing Event

Definition

Wird ausgelöst, wenn dieses XObject oder eines seiner untergeordneten Elemente gerade geändert wird.Raised when this XObject or any of its descendants are about to change.

public:
 event EventHandler<System::Xml::Linq::XObjectChangeEventArgs ^> ^ Changing;
public event EventHandler<System.Xml.Linq.XObjectChangeEventArgs> Changing;
member this.Changing : EventHandler<System.Xml.Linq.XObjectChangeEventArgs> 
Public Custom Event Changing As EventHandler(Of XObjectChangeEventArgs) 

Beispiele

Im folgende Beispiel wird das Stammelement einer XML-Struktur einen Ereignishandler hinzugefügt.The following example adds an event handler to the root element of an XML tree. Er ändert dann die Struktur, die LINQ für XML-Code einige Ereignisse auslösen, verursacht.It then modifies the tree, causing LINQ to XML to raise some events.

XElement root = new XElement("Root", "content");  
root.Changing += new EventHandler<XObjectChangeEventArgs>(  
    (sender, cea) =>  
    {  
        Console.WriteLine("Changing event raised");  
        XElement xSender = (XElement)sender;  
        Console.WriteLine("  Sender: {0}", xSender.Name);  
        Console.WriteLine("  ObjectChange: {0}", cea.ObjectChange);  
    }  
);  
root.Changed += new EventHandler<XObjectChangeEventArgs>(  
    (sender, cea) =>  
    {  
        Console.WriteLine("Changed event raised");  
        XElement xSender = (XElement)sender;  
        Console.WriteLine("  Sender: {0}", xSender.Name);  
        Console.WriteLine("  ObjectChange: {0}", cea.ObjectChange);  
    }  
);  
root.Add(new XElement("Child", "child content"));  
Module Module1  
    WithEvents root As XElement = <Root>content</Root>  

    Sub Main()  
        root.Add(<Child>child content</Child>)  
    End Sub  

    Private Sub root_Changing( _  
            ByVal sender As Object, _  
            ByVal e As XObjectChangeEventArgs) _  
            Handles root.Changing  
        Dim xSender As XElement = CType(sender, XElement)  
        Console.WriteLine("Changing event raised")  
        Console.WriteLine("  Sender: {0}", xSender.Name)  
        Console.WriteLine("  ObjectChange: {0}", e.ObjectChange)  
    End Sub  

    Private Sub root_Changed( _  
            ByVal sender As Object, _  
            ByVal e As XObjectChangeEventArgs) _  
            Handles root.Changed  
        Dim xSender As XElement = CType(sender, XElement)  
        Console.WriteLine("Changed event raised")  
        Console.WriteLine("  Sender: {0}", xSender.Name)  
        Console.WriteLine("  ObjectChange: {0}", e.ObjectChange)  
    End Sub  
End Module  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

Changing event raised  
  Sender: Child  
  ObjectChange: Add  
Changed event raised  
  Sender: Child  
  ObjectChange: Add  

Hinweise

Ereignisse werden ausgelöst, nur durch die Änderung einer XML-Struktur, die nicht durch die Erstellung einer XML-Struktur.Events are raised only from modification of an XML tree, not from construction of an XML tree. Müssen Sie einen Ereignishandler hinzufügen, auf ein Ereignis aus, bevor Ereignisse empfangen werden können, und einen Ereignishandler kann nicht hinzugefügt werden, bevor man einen Verweis auf ein XObject.You have to add an event handler to an event before you can receive events, and you can't add an event handler before you have a reference to an XObject. Sie können keine Abrufen eines Verweises auf ein XObject vor der XML-Struktur erstellt wird.You can't get a reference to an XObject before the XML tree is constructed. Dies bedeutet, dass bei der funktionalen Konstruktion einer XML-Struktur, den Sie keine Ereignisse empfangen werden.This means that during functional construction of an XML tree, you will not receive events.

Sie sollten vorsichtig sein, wenn eine XML-Struktur innerhalb eines dieser Ereignisse, ändern, da dies zu unerwarteten Ergebnissen führen kann.You should be careful when modifying an XML tree within one of these events, because doing this might lead to unexpected results. Angenommen, Sie erhalten eine Changing -Ereignis, und während der Verarbeitung des Ereignisses ist, entfernen Sie den Knoten aus der Struktur, erhalten Sie möglicherweise nicht die Changed Ereignis.For example, if you receive a Changing event, and while the event is being processed you remove the node from the tree, you might not receive the Changed event. Wenn ein Ereignis verarbeitet wird, ist es zulässig, eine XML-Struktur nicht ändern, die der Knoten enthält, der das Ereignis empfangen wird. Es ist noch gültig ist, dieselbe Struktur ändern, sofern die Änderungen nicht bestimmten Knoten beeinträchtigen, auf denen das Ereignis ausgelöst wurde.When an event is being processed, it is valid to modify an XML tree other than the one that contains the node that is receiving the event; it is even valid to modify the same tree provided the modifications do not affect the specific nodes on which the event was raised. Wenn Sie den Bereich der Struktur, die der Knoten mit dem Empfang des Ereignisses enthält ändern, sind jedoch die Ereignisse, die Sie erhalten und die Auswirkungen auf die Struktur nicht definiert.However, if you modify the area of the tree that contains the node receiving the event, the events that you receive and the impact to the tree are undefined.

Gilt für:

Siehe auch