Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / System / Windows / Automation / Peers / GridViewItemAutomationPeer.cs / 1 / GridViewItemAutomationPeer.cs
using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Security; using System.Text; using System.Windows; using System.Windows.Automation; using System.Windows.Automation.Provider; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Interop; using System.Windows.Media; using MS.Internal; using MS.Win32; namespace System.Windows.Automation.Peers { /// public class GridViewItemAutomationPeer : ListBoxItemAutomationPeer { /// public GridViewItemAutomationPeer(object owner, ListViewAutomationPeer listviewAP) : base(owner, listviewAP) { Invariant.Assert(owner != null); Invariant.Assert(listviewAP != null); _item = owner; _listviewAP = listviewAP; } /// override protected string GetClassNameCore() { return "ListViewItem"; } /// override protected AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.DataItem; } /// protected override ListGetChildrenCore() { ListView listview = _listviewAP.Owner as ListView; Invariant.Assert(listview != null); ListViewItem lvi = listview.ItemContainerGenerator.ContainerFromItem(_item) as ListViewItem; if (lvi != null) { GridViewRowPresenter rowPresenter = GridViewAutomationPeer.FindVisualByType(lvi, typeof(GridViewRowPresenter)) as GridViewRowPresenter; if (rowPresenter != null) { Hashtable oldChildren = _dataChildren; //cache the old ones for possible reuse _dataChildren = new Hashtable(rowPresenter.ActualCells.Count); List list = new List (); int row = listview.Items.IndexOf(_item); int column = 0; foreach (UIElement ele in rowPresenter.ActualCells) { GridViewCellAutomationPeer peer = (oldChildren == null ? null : (GridViewCellAutomationPeer)oldChildren[ele]); if (peer == null) { if (ele is ContentPresenter) { peer = new GridViewCellAutomationPeer((ContentPresenter)ele, _listviewAP); } else if (ele is TextBlock) { peer = new GridViewCellAutomationPeer((TextBlock)ele, _listviewAP); } else { Invariant.Assert(false, "Children of GridViewRowPresenter should be ContentPresenter or TextBlock"); } } //protection from indistinguishable UIElement - for example, 2 UIElement wiht same value if (_dataChildren[ele] == null) { //Set Cell's row and column peer.Column = column; peer.Row = row; list.Add(peer); _dataChildren.Add(ele, peer); column++; } } return list; } } return null; } #region Private Fields private object _item; private ListViewAutomationPeer _listviewAP; private Hashtable _dataChildren = null; #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Security; using System.Text; using System.Windows; using System.Windows.Automation; using System.Windows.Automation.Provider; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Interop; using System.Windows.Media; using MS.Internal; using MS.Win32; namespace System.Windows.Automation.Peers { /// public class GridViewItemAutomationPeer : ListBoxItemAutomationPeer { /// public GridViewItemAutomationPeer(object owner, ListViewAutomationPeer listviewAP) : base(owner, listviewAP) { Invariant.Assert(owner != null); Invariant.Assert(listviewAP != null); _item = owner; _listviewAP = listviewAP; } /// override protected string GetClassNameCore() { return "ListViewItem"; } /// override protected AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.DataItem; } /// protected override List GetChildrenCore() { ListView listview = _listviewAP.Owner as ListView; Invariant.Assert(listview != null); ListViewItem lvi = listview.ItemContainerGenerator.ContainerFromItem(_item) as ListViewItem; if (lvi != null) { GridViewRowPresenter rowPresenter = GridViewAutomationPeer.FindVisualByType(lvi, typeof(GridViewRowPresenter)) as GridViewRowPresenter; if (rowPresenter != null) { Hashtable oldChildren = _dataChildren; //cache the old ones for possible reuse _dataChildren = new Hashtable(rowPresenter.ActualCells.Count); List list = new List (); int row = listview.Items.IndexOf(_item); int column = 0; foreach (UIElement ele in rowPresenter.ActualCells) { GridViewCellAutomationPeer peer = (oldChildren == null ? null : (GridViewCellAutomationPeer)oldChildren[ele]); if (peer == null) { if (ele is ContentPresenter) { peer = new GridViewCellAutomationPeer((ContentPresenter)ele, _listviewAP); } else if (ele is TextBlock) { peer = new GridViewCellAutomationPeer((TextBlock)ele, _listviewAP); } else { Invariant.Assert(false, "Children of GridViewRowPresenter should be ContentPresenter or TextBlock"); } } //protection from indistinguishable UIElement - for example, 2 UIElement wiht same value if (_dataChildren[ele] == null) { //Set Cell's row and column peer.Column = column; peer.Row = row; list.Add(peer); _dataChildren.Add(ele, peer); column++; } } return list; } } return null; } #region Private Fields private object _item; private ListViewAutomationPeer _listviewAP; private Hashtable _dataChildren = null; #endregion } } // 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
- TiffBitmapDecoder.cs
- Constraint.cs
- SpellCheck.cs
- ResourceDisplayNameAttribute.cs
- SystemMulticastIPAddressInformation.cs
- TypeSystemHelpers.cs
- KeyboardDevice.cs
- Switch.cs
- StrokeCollection2.cs
- XmlSerializerFactory.cs
- DispatcherExceptionEventArgs.cs
- cookie.cs
- Geometry.cs
- _UncName.cs
- WindowsAuthenticationEventArgs.cs
- UnsafeNativeMethodsTablet.cs
- DataListItem.cs
- ContractHandle.cs
- GridViewEditEventArgs.cs
- SqlUDTStorage.cs
- ProxyFragment.cs
- PlaceHolder.cs
- AddIn.cs
- HtmlTableRow.cs
- StdValidatorsAndConverters.cs
- KnownIds.cs
- XmlAutoDetectWriter.cs
- BufferModeSettings.cs
- FixedTextBuilder.cs
- TextEmbeddedObject.cs
- PresentationAppDomainManager.cs
- FlowDocumentPaginator.cs
- SynchronizedInputAdaptor.cs
- XmlSchemaSimpleContent.cs
- ColumnWidthChangedEvent.cs
- AlternateView.cs
- Point3D.cs
- SelectQueryOperator.cs
- TreeView.cs
- AssemblyCache.cs
- EntityParameterCollection.cs
- HtmlShimManager.cs
- ContextInformation.cs
- MarkupCompiler.cs
- OlePropertyStructs.cs
- SQLMembershipProvider.cs
- DataList.cs
- FormatterServices.cs
- Stacktrace.cs
- IPEndPointCollection.cs
- HwndHostAutomationPeer.cs
- Context.cs
- RestHandlerFactory.cs
- HotSpot.cs
- ControlAdapter.cs
- AlignmentXValidation.cs
- AppDomainShutdownMonitor.cs
- PenLineJoinValidation.cs
- EntityCollection.cs
- AttachedAnnotation.cs
- TemplateNameScope.cs
- AliasedExpr.cs
- XmlUtf8RawTextWriter.cs
- StringValidatorAttribute.cs
- StreamingContext.cs
- WebPartMovingEventArgs.cs
- PrintControllerWithStatusDialog.cs
- FormattedTextSymbols.cs
- GifBitmapDecoder.cs
- DocumentXPathNavigator.cs
- FormViewUpdateEventArgs.cs
- DateTimeSerializationSection.cs
- Size3DValueSerializer.cs
- MsmqVerifier.cs
- ExecutionPropertyManager.cs
- TokenizerHelper.cs
- LineServicesCallbacks.cs
- ListMarkerSourceInfo.cs
- TaskHelper.cs
- ConsumerConnectionPointCollection.cs
- SqlProfileProvider.cs
- HtmlLiteralTextAdapter.cs
- EncodingDataItem.cs
- PageContentCollection.cs
- OrderedDictionaryStateHelper.cs
- ErrorStyle.cs
- OuterGlowBitmapEffect.cs
- DesignerWebPartChrome.cs
- CodeGotoStatement.cs
- CustomActivityDesigner.cs
- NetCodeGroup.cs
- DataSetUtil.cs
- AssemblyInfo.cs
- PEFileEvidenceFactory.cs
- AsymmetricSignatureDeformatter.cs
- BindingFormattingDialog.cs
- ProvidePropertyAttribute.cs
- WebPartMovingEventArgs.cs
- BackStopAuthenticationModule.cs
- TextBoxAutomationPeer.cs