Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PrintDialog.cs
- ErrorLog.cs
- SqlColumnizer.cs
- SQLDecimal.cs
- MatchingStyle.cs
- DSACryptoServiceProvider.cs
- ThemeDictionaryExtension.cs
- DispatcherEventArgs.cs
- RoleGroup.cs
- StylusPointProperties.cs
- DecoderReplacementFallback.cs
- DataGridItemAttachedStorage.cs
- HistoryEventArgs.cs
- SaveFileDialog.cs
- RelatedCurrencyManager.cs
- pingexception.cs
- DataGridCell.cs
- AssemblyAttributesGoHere.cs
- Array.cs
- DataBindingExpressionBuilder.cs
- SafeJobHandle.cs
- XappLauncher.cs
- _ServiceNameStore.cs
- SamlSubject.cs
- VisualTarget.cs
- DataGridViewCellStyleEditor.cs
- ProjectionPathSegment.cs
- UnhandledExceptionEventArgs.cs
- HandlerBase.cs
- SchemaTableColumn.cs
- SqlTypesSchemaImporter.cs
- IpcPort.cs
- TypeListConverter.cs
- DeploymentSection.cs
- NameSpaceEvent.cs
- SymbolUsageManager.cs
- _HeaderInfoTable.cs
- ResponseBodyWriter.cs
- FormatConvertedBitmap.cs
- ExpressionBuilder.cs
- BounceEase.cs
- TemplateBaseAction.cs
- PrintSchema.cs
- ConditionCollection.cs
- ISFTagAndGuidCache.cs
- DependencyPropertyKind.cs
- CursorInteropHelper.cs
- FontWeight.cs
- DecimalConstantAttribute.cs
- ListViewGroupItemCollection.cs
- PageCatalogPart.cs
- CacheSection.cs
- ServiceDescriptionReflector.cs
- DropDownList.cs
- RenderDataDrawingContext.cs
- FloaterBaseParaClient.cs
- ClientUrlResolverWrapper.cs
- TransformationRules.cs
- SapiGrammar.cs
- FragmentNavigationEventArgs.cs
- NetworkAddressChange.cs
- DataGridViewHitTestInfo.cs
- WebPartDisplayMode.cs
- CustomTypeDescriptor.cs
- CommandBindingCollection.cs
- EntityUtil.cs
- _PooledStream.cs
- SkinBuilder.cs
- Triplet.cs
- CqlQuery.cs
- BitmapPalette.cs
- ObjectConverter.cs
- XmlSchemaIdentityConstraint.cs
- WebPartZoneCollection.cs
- TypeConstant.cs
- DataListItemEventArgs.cs
- DCSafeHandle.cs
- ViewStateException.cs
- UInt16.cs
- EventToken.cs
- XPathNodeList.cs
- RuntimeConfig.cs
- TypeToken.cs
- ObjectListFieldCollection.cs
- Publisher.cs
- CompressedStack.cs
- Region.cs
- RoleGroupCollection.cs
- DataGridViewLayoutData.cs
- XmlMapping.cs
- SectionInput.cs
- DesignerInterfaces.cs
- DocumentSchemaValidator.cs
- XmlDataSourceView.cs
- CodeMemberProperty.cs
- XamlGridLengthSerializer.cs
- SafeNativeMethodsCLR.cs
- _NegoStream.cs
- EventManager.cs
- DispatcherProcessingDisabled.cs