// Token: 0x06001CE5 RID: 7397 RVA: 0x00087134 File Offset: 0x00085334 private void BuildNodeCollection(XmlDocument doc) { XmlDataCollection xmlDataCollection = null; if (doc != null) { if (TraceData.IsExtendedTraceEnabled(this, TraceDataLevel.CreateExpression)) { TraceData.Trace(TraceEventType.Warning, TraceData.XmlBuildCollection(new object[] { TraceData.Identify(this) })); } XmlNodeList resultNodeList = this.GetResultNodeList(doc); xmlDataCollection = new XmlDataCollection(this); if (resultNodeList != null) { xmlDataCollection.SynchronizeCollection(resultNodeList); } } if (TraceData.IsExtendedTraceEnabled(this, TraceDataLevel.Attach)) { TraceData.Trace(TraceEventType.Warning, TraceData.QueryFinished(new object[] { TraceData.Identify(this), base.Dispatcher.CheckAccess() ? "synchronous" : "asynchronous", TraceData.Identify(xmlDataCollection), TraceData.IdentifyException(null) })); } this.OnQueryFinished(xmlDataCollection, null, this.CompletedCallback, doc); }
// create a comparer for an Xml collection (if applicable) internal override IComparer PrepareXmlComparer(IEnumerable collection, SortDescriptionCollection sort, CultureInfo culture) { XmlDataCollection xdc = collection as XmlDataCollection; if (xdc != null) { Invariant.Assert(sort != null); return(new XmlNodeComparer(sort, xdc.XmlNamespaceManager, culture)); } return(null); }
// Token: 0x060064C8 RID: 25800 RVA: 0x001C435C File Offset: 0x001C255C internal static XmlDataProvider XmlDataProviderForElement(DependencyObject d) { IGeneratorHost generatorHost = Helper.GeneratorHostForElement(d); ItemCollection itemCollection = (generatorHost != null) ? generatorHost.View : null; ICollectionView collectionView = (itemCollection != null) ? itemCollection.CollectionView : null; XmlDataCollection xmlDataCollection = (collectionView != null) ? (collectionView.SourceCollection as XmlDataCollection) : null; if (xmlDataCollection == null) { return(null); } return(xmlDataCollection.ParentXmlDataProvider); }
private void OnNodeChanged(object sender, XmlNodeChangedEventArgs e) { if (XmlDataCollection == null) { return; } UnHook(); XmlNodeList nodes = GetResultNodeList((XmlDocument)sender); // Compare the entire new list with the old, // and make all the necessary insert/remove changes. XmlDataCollection.SynchronizeCollection(nodes); Hook(); }
// this method can run on a worker thread! private void BuildNodeCollection(XmlDocument doc) { XmlDataCollection collection = null; if (doc != null) { if (TraceData.IsExtendedTraceEnabled(this, TraceDataLevel.XmlBuildCollection)) { TraceData.Trace(TraceEventType.Warning, TraceData.XmlBuildCollection( TraceData.Identify(this))); } XmlNodeList nodes = GetResultNodeList(doc); //we always create a new DataCollection collection = new XmlDataCollection(this); if (nodes != null) { collection.SynchronizeCollection(nodes); } } if (TraceData.IsExtendedTraceEnabled(this, TraceDataLevel.ProviderQuery)) { TraceData.Trace(TraceEventType.Warning, TraceData.QueryFinished( TraceData.Identify(this), Dispatcher.CheckAccess() ? "synchronous" : "asynchronous", TraceData.Identify(collection), TraceData.IdentifyException(null))); } OnQueryFinished(collection, null, CompletedCallback, doc); }
XmlDataCollection BuildQueriedCollection(XmlNodeList nodes) { if (TraceData.IsExtendedTraceEnabled(ParentBindingExpression, TraceDataLevel.GetValue)) { TraceData.Trace(TraceEventType.Warning, TraceData.XmlNewCollection( TraceData.Identify(ParentBindingExpression), IdentifyNodeList(nodes))); } QueriedCollection = new XmlDataCollection(XmlDataProvider); QueriedCollection.XmlNamespaceManager = NamespaceManager; QueriedCollection.SynchronizeCollection(nodes); return QueriedCollection; }
// return true if parent is an empty XmlDataCollection. internal override bool IsEmptyXmlDataCollection(object parent) { XmlDataCollection xdc = parent as XmlDataCollection; return((xdc != null) ? xdc.Count > 0 : false); }