Esempio n. 1
0
        // 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);
        }
Esempio n. 2
0
        // 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);
        }
Esempio n. 3
0
        // 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);
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        // 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);
        }
Esempio n. 6
0
        // 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); 

        } 
Esempio n. 7
0
        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; 
        }
Esempio n. 8
0
        // 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);
        }