// This method is called from DataGrid.OnSelectionChanged // Raises the selection events when Items selection changes internal void RaiseAutomationSelectionEvents(SelectionChangedEventArgs e) { int numSelected = this.OwningDataGrid.SelectedItems.Count; int numAdded = e.AddedItems.Count; // If the result of an AddToSelection or RemoveFromSelection is a single selected item, // then all we raise is the ElementSelectedEvent for single item if (AutomationPeer.ListenerExists(AutomationEvents.SelectionItemPatternOnElementSelected) && numSelected == 1 && numAdded == 1) { ItemAutomationPeer peer = FindOrCreateItemAutomationPeer(this.OwningDataGrid.SelectedItem); if (peer != null) { peer.RaiseAutomationEvent(AutomationEvents.SelectionItemPatternOnElementSelected); } } else { int i; if (AutomationPeer.ListenerExists(AutomationEvents.SelectionItemPatternOnElementAddedToSelection)) { for (i = 0; i < e.AddedItems.Count; i++) { ItemAutomationPeer peer = FindOrCreateItemAutomationPeer(e.AddedItems[i]); if (peer != null) { peer.RaiseAutomationEvent(AutomationEvents.SelectionItemPatternOnElementAddedToSelection); } } } if (AutomationPeer.ListenerExists(AutomationEvents.SelectionItemPatternOnElementRemovedFromSelection)) { for (i = 0; i < e.RemovedItems.Count; i++) { ItemAutomationPeer peer = FindOrCreateItemAutomationPeer(e.RemovedItems[i]); if (peer != null) { peer.RaiseAutomationEvent(AutomationEvents.SelectionItemPatternOnElementRemovedFromSelection); } } } } }
// Token: 0x0600257B RID: 9595 RVA: 0x000B44A0 File Offset: 0x000B26A0 internal void RaiseAutomationSelectionEvents(SelectionChangedEventArgs e) { int count = this.OwningDataGrid.SelectedItems.Count; int count2 = e.AddedItems.Count; if (AutomationPeer.ListenerExists(AutomationEvents.SelectionItemPatternOnElementSelected) && count == 1 && count2 == 1) { ItemAutomationPeer itemAutomationPeer = this.FindOrCreateItemAutomationPeer(this.OwningDataGrid.SelectedItem); if (itemAutomationPeer != null) { itemAutomationPeer.RaiseAutomationEvent(AutomationEvents.SelectionItemPatternOnElementSelected); return; } } else { if (AutomationPeer.ListenerExists(AutomationEvents.SelectionItemPatternOnElementAddedToSelection)) { for (int i = 0; i < e.AddedItems.Count; i++) { ItemAutomationPeer itemAutomationPeer2 = this.FindOrCreateItemAutomationPeer(e.AddedItems[i]); if (itemAutomationPeer2 != null) { itemAutomationPeer2.RaiseAutomationEvent(AutomationEvents.SelectionItemPatternOnElementAddedToSelection); } } } if (AutomationPeer.ListenerExists(AutomationEvents.SelectionItemPatternOnElementRemovedFromSelection)) { for (int i = 0; i < e.RemovedItems.Count; i++) { ItemAutomationPeer itemAutomationPeer3 = this.FindOrCreateItemAutomationPeer(e.RemovedItems[i]); if (itemAutomationPeer3 != null) { itemAutomationPeer3.RaiseAutomationEvent(AutomationEvents.SelectionItemPatternOnElementRemovedFromSelection); } } } } }