Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Automation / Peers / TableAutomationPeer.cs / 1 / TableAutomationPeer.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: TableAutomationPeer.cs // // Description: Automation peer for Table // //--------------------------------------------------------------------------- using System.Windows.Automation.Provider; // IRawElementProviderSimple using System.Windows.Documents; namespace System.Windows.Automation.Peers { /// public class TableAutomationPeer : TextElementAutomationPeer, IGridProvider { ////// Constructor. /// /// Owner of the AutomationPeer. public TableAutomationPeer(Table owner) : base(owner) { _rowCount = GetRowCount(); _columnCount = GetColumnCount(); } ////// public override object GetPattern(PatternInterface patternInterface) { if (patternInterface == PatternInterface.Grid) { return this; } return null; } ////// /// protected override AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Table; } ////// /// protected override string GetClassNameCore() { return "Table"; } ////// /// protected override bool IsControlElementCore() { return true; } ////// /// protected override bool IsContentElementCore() { return true; } ////// /// Raises property changed events in response to structure changes. /// internal void OnStructureInvalidated() { int rowCount = GetRowCount(); if (rowCount != _rowCount) { RaisePropertyChangedEvent(GridPatternIdentifiers.RowCountProperty, _rowCount, rowCount); _rowCount = rowCount; } int columnCount = GetColumnCount(); if (columnCount != _columnCount) { RaisePropertyChangedEvent(GridPatternIdentifiers.ColumnCountProperty, _columnCount, columnCount); _columnCount = columnCount; } } ////// Returns the number of rows. /// private int GetRowCount() { int rows = 0; foreach (TableRowGroup group in ((Table)Owner).RowGroups) { rows += group.Rows.Count; } return rows; } ////// Returns the number of columns. /// private int GetColumnCount() { return ((Table)Owner).ColumnCount; } private int _rowCount; private int _columnCount; //------------------------------------------------------------------- // // IGridProvider Members // //------------------------------------------------------------------- #region IGridProvider Members ////// Returns the provider for the element that is located at the row and /// column location requested by the client. /// IRawElementProviderSimple IGridProvider.GetItem(int row, int column) { if (row < 0 || row >= ((IGridProvider)this).RowCount) { throw new ArgumentOutOfRangeException("row"); } if (column < 0 || column >= ((IGridProvider)this).ColumnCount) { throw new ArgumentOutOfRangeException("column"); } int currentRow = 0; Table table = (Table)Owner; foreach (TableRowGroup group in table.RowGroups) { if (currentRow + group.Rows.Count < row) { currentRow += group.Rows.Count; } else { foreach (TableRow tableRow in group.Rows) { if (currentRow == row) { foreach (TableCell cell in tableRow.Cells) { if (cell.ColumnIndex <= column && cell.ColumnIndex + cell.ColumnSpan > column) { return ProviderFromPeer(CreatePeerForElement(cell)); } } // check spanned cells foreach (TableCell cell in tableRow.SpannedCells) { if (cell.ColumnIndex <= column && cell.ColumnIndex + cell.ColumnSpan > column) { return ProviderFromPeer(CreatePeerForElement(cell)); } } } else { currentRow++; } } } } return null; } ////// Returns the number of rows in the grid at the time this was requested. /// int IGridProvider.RowCount { get { return _rowCount; } } ////// Returns the number of columns in the grid at the time this was requested. /// int IGridProvider.ColumnCount { get { return _columnCount; } } #endregion IGridProvider Members } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataGridViewRowHeightInfoNeededEventArgs.cs
- ReflectionTypeLoadException.cs
- AutomationIdentifier.cs
- ColumnCollection.cs
- EventLogEntryCollection.cs
- Variable.cs
- ServiceOperationUIEditor.cs
- ClientOptions.cs
- WorkflowRuntimeElement.cs
- CheckBoxBaseAdapter.cs
- ZeroOpNode.cs
- MenuItemStyle.cs
- DesignerDataRelationship.cs
- QueryConverter.cs
- EntitySqlQueryCacheKey.cs
- InternalControlCollection.cs
- State.cs
- SafeProcessHandle.cs
- XmlAtomicValue.cs
- QueryPageSettingsEventArgs.cs
- EmptyEnumerable.cs
- DataServiceQueryOfT.cs
- DecoderFallback.cs
- EventSourceCreationData.cs
- PointCollection.cs
- Pool.cs
- SQLGuid.cs
- StringToken.cs
- SharedPerformanceCounter.cs
- PreviewPrintController.cs
- ScriptingScriptResourceHandlerSection.cs
- objectresult_tresulttype.cs
- GenericTypeParameterBuilder.cs
- RegexWorker.cs
- Vector3DAnimation.cs
- ServiceInfo.cs
- StringComparer.cs
- PerformanceCountersElement.cs
- ReservationNotFoundException.cs
- XamlHostingConfiguration.cs
- TypeGeneratedEventArgs.cs
- RandomNumberGenerator.cs
- ClassicBorderDecorator.cs
- ListViewUpdateEventArgs.cs
- SmiContext.cs
- XmlDataDocument.cs
- CellConstant.cs
- MainMenu.cs
- ParameterModifier.cs
- ReliableMessagingHelpers.cs
- WindowInteropHelper.cs
- RowParagraph.cs
- ApplicationActivator.cs
- EditorPartCollection.cs
- DoubleConverter.cs
- ProcessInfo.cs
- EventNotify.cs
- RC2CryptoServiceProvider.cs
- UpdateCompiler.cs
- ReadOnlyCollection.cs
- NativeWrapper.cs
- TrustLevelCollection.cs
- OleDbDataReader.cs
- TreeNodeMouseHoverEvent.cs
- PointCollectionConverter.cs
- SequentialUshortCollection.cs
- InputLanguageEventArgs.cs
- AccessDataSourceView.cs
- FocusTracker.cs
- SqlCacheDependency.cs
- ControlPaint.cs
- ScrollItemProviderWrapper.cs
- WindowPatternIdentifiers.cs
- TableDetailsCollection.cs
- CompilerGlobalScopeAttribute.cs
- DesignerOptions.cs
- RowVisual.cs
- SqlCacheDependencySection.cs
- WeakEventTable.cs
- UInt32Converter.cs
- BitmapEffectrendercontext.cs
- Size.cs
- UpdateExpressionVisitor.cs
- HandleExceptionArgs.cs
- FaultFormatter.cs
- DBAsyncResult.cs
- DataGridViewAutoSizeModeEventArgs.cs
- HyperlinkAutomationPeer.cs
- WorkItem.cs
- SafeFileMappingHandle.cs
- UserValidatedEventArgs.cs
- TableLayoutColumnStyleCollection.cs
- NativeMethods.cs
- DataList.cs
- Group.cs
- Expressions.cs
- TextEditorCharacters.cs
- versioninfo.cs
- PrivilegeNotHeldException.cs
- VisemeEventArgs.cs