protected override void OnIsKeyboardFocusWithinChanged(DependencyPropertyChangedEventArgs e) { IIntegratedHelpService helpService = this.Context.Services.GetService <IIntegratedHelpService>(); if (helpService != null) { if ((Boolean)e.NewValue) { this.isSelectionChangedInternally = true; this.Context.Items.SetValue(new Selection()); this.isSelectionChangedInternally = false; helpService.AddContextAttribute(string.Empty, WorkflowViewManager.GetF1HelpTypeKeyword(typeof(ImportDesigner)), System.ComponentModel.Design.HelpKeywordType.F1Keyword); } else { helpService.RemoveContextAttribute(string.Empty, WorkflowViewManager.GetF1HelpTypeKeyword(typeof(ImportDesigner))); } } base.OnIsKeyboardFocusWithinChanged(e); }
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; }