Example #1
0
        private void SetPropertyValue(ModelItem oldModelItem, AttachedProperty property, ModelItem newModelItem)
        {
            // update the previous ModelItem (what was current before)
            if (oldModelItem != null)
            {
                property.NotifyPropertyChanged(oldModelItem);
            }

            // update the current Modelitem
            if (newModelItem != null)
            {
                property.NotifyPropertyChanged(newModelItem);
            }
        }
Example #2
0
        void OnItemSelected(Selection newSelection)
        {
            Fx.Assert(newSelection != null, "newSelection is null");
            IList <ModelItem> newSelectionObjects = newSelection.SelectedObjects as IList <ModelItem>;
            IList <ModelItem> oldSelectionObjects = oldSelection.SelectedObjects as IList <ModelItem>;

            //Call notifyPropertyChanged for IsPrimarySelection attached property.
            if (newSelection.PrimarySelection != null && !newSelection.PrimarySelection.Equals(oldSelection.PrimarySelection))
            {
                isPrimarySelectionProperty.NotifyPropertyChanged(oldSelection.PrimarySelection);
                isPrimarySelectionProperty.NotifyPropertyChanged(newSelection.PrimarySelection);
            }
            else if (newSelection.PrimarySelection == null)
            {
                isPrimarySelectionProperty.NotifyPropertyChanged(oldSelection.PrimarySelection);
            }


            //call NotifyPropertyChanged for IsSelection property on ModelItems that were added or removed from selection.
            HashSet <ModelItem> selectionChangeSet = new HashSet <ModelItem>(oldSelectionObjects);

            selectionChangeSet.SymmetricExceptWith(newSelectionObjects);
            foreach (ModelItem selectionChangeMI in selectionChangeSet)
            {
                isSelectionProperty.NotifyPropertyChanged(selectionChangeMI);
            }

            if (helpService != null)
            {
                if (oldSelection.PrimarySelection != null)
                {
                    helpService.RemoveContextAttribute(string.Empty, GetF1HelpTypeKeyword(oldSelection.PrimarySelection.ItemType));
                }

                if (newSelection.PrimarySelection != null)
                {
                    helpService.AddContextAttribute(string.Empty, GetF1HelpTypeKeyword(newSelection.PrimarySelection.ItemType), HelpKeywordType.F1Keyword);
                }
            }
            oldSelection = newSelection;
        }
            void ModelChanged(object sender, ModelChangedEventArgs e)
            {
                ModelChangeInfo changeInfo = e.ModelChangeInfo;

                if (changeInfo != null && changeInfo.ModelChangeType == ModelChangeType.PropertyChanged)
                {
                    Type propertyType = changeInfo.Subject.ItemType;
                    if (changeInfo.PropertyName == "Name")
                    {
                        if (propertyType.Equals(typeof(ActivityBuilder)))
                        {
                            activityBuilderDisplayNameProperty.NotifyPropertyChanged(changeInfo.Subject);
                        }
                        else if (propertyType.Equals(typeof(ActivityTemplateFactoryBuilder)))
                        {
                            activityTemplateFactoryBuilderDisplayNameProperty.NotifyPropertyChanged(changeInfo.Subject);
                        }
                    }
                }
            }