XObject.Changing Olay

Tanım

Bu XObject veya onun alt öğelerinden herhangi biri değişmek üzereyken yükseltilir.

C#
public event EventHandler<System.Xml.Linq.XObjectChangeEventArgs> Changing;

Olay Türü

Örnekler

Aşağıdaki örnek, xml ağacının kök öğesine bir olay işleyicisi ekler. Daha sonra ağacı değiştirerek LINQ to XML bazı olayları tetiklesine neden olur.

C#
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"));  

Bu örnek aşağıdaki çıkışı oluşturur:

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

Açıklamalar

Olaylar yalnızca XML ağacının değiştirilmesinden oluşturulur, XML ağacının oluşturulmasından tetiklenmez. Olayları alabilmeniz için önce bir olaya olay işleyicisi eklemeniz gerekir ve bir başvuruya XObjectsahip olmadan önce bir olay işleyicisi ekleyemezsiniz. XML ağacı oluşturmadan önce öğesine XObject başvuru alamazsınız. Başka bir deyişle, XML ağacının işlevsel yapısı sırasında olayları almazsınız.

Bu olaylardan birinin içindeki XML ağacını değiştirirken dikkatli olmanız gerekir, çünkü bunu yapmak beklenmeyen sonuçlara yol açabilir. Örneğin, bir Changing olay alırsanız ve olay işlenirken düğümü ağaçtan kaldırırsanız, olayı almayabilirsiniz Changed . Bir olay işlenirken, olayı alan düğümü içerenden başka bir XML ağacını değiştirmek geçerli olur; Değişikliklerin olayın oluşturulduğu belirli düğümleri etkilememesi koşuluyla aynı ağacı değiştirmek bile geçerlidir. Ancak, olayı alan düğümü içeren ağaç alanını değiştirirseniz, aldığınız olaylar ve ağaç üzerindeki etkisi tanımsız olur.

Şunlara uygulanır

Ürün Sürümler
.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 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 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Ayrıca bkz.