/// <summary>
        /// Property changed event from a ffi object.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private void FFIObjectPropertyChanged(Object sender, PropertyChangedEventArgs args)
        {
            string propertyName = args.PropertyName;

            if (String.IsNullOrEmpty(propertyName))
            {
                return;
            }

            // Ignore all property changed event when the update engine is
            // re-executing graph nodes because of previous property changed
            // event
            if (mHostCore.IsEvalutingPropertyChanged())
            {
                return;
            }

            GraphNode graphNode = null;

            if (mFFIObjectHostGraphNode.TryGetValue(sender, out graphNode))
            {
                graphNode.propertyChanged = true;
                if (FFIPropertyChangedEventHandler != null)
                {
                    FFIPropertyChangedEventArgs newargs = new FFIPropertyChangedEventArgs(propertyName, graphNode);
                    FFIPropertyChangedEventHandler(newargs);
                }
            }
        }
        /// <summary>
        /// Property changed event from a ffi object.  
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private void FFIObjectPropertyChanged(Object sender, PropertyChangedEventArgs args)
        {
            string propertyName = args.PropertyName;
            if (String.IsNullOrEmpty(propertyName))
            {
                return;
            }

            // Ignore all property changed event when the update engine is
            // re-executing graph nodes because of previous property changed
            // event
            if (mHostCore.IsEvalutingPropertyChanged())
            {
                return;
            }

            GraphNode graphNode = null;
            if (mFFIObjectHostGraphNode.TryGetValue(sender, out graphNode))
            {
                graphNode.propertyChanged = true;
                if (FFIPropertyChangedEventHandler != null)
                {
                    FFIPropertyChangedEventArgs newargs = new FFIPropertyChangedEventArgs(propertyName, graphNode);
                    FFIPropertyChangedEventHandler(newargs);
                }
            }
        }
示例#3
0
 private void FFIPropertyChanged(FFIPropertyChangedEventArgs arg)
 {
     lock (taskQueue)
     {
         taskQueue.Enqueue(new PropertyChangedTask(this, arg.hostGraphNode));
     }
 }