Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- DataServiceHostFactory.cs
- ResourceAttributes.cs
- Brush.cs
- OdbcConnectionHandle.cs
- SerializationUtility.cs
- MemberListBinding.cs
- DataGridViewCellConverter.cs
- CodeFieldReferenceExpression.cs
- KeyValueConfigurationCollection.cs
- FontResourceCache.cs
- XPathPatternBuilder.cs
- SQLMoneyStorage.cs
- DataGridViewLinkCell.cs
- TraceListeners.cs
- InfoCardClaim.cs
- ToolBarButton.cs
- SafeWaitHandle.cs
- DrawListViewSubItemEventArgs.cs
- EntitySqlQueryCacheEntry.cs
- IdentifierCollection.cs
- PagePropertiesChangingEventArgs.cs
- AsyncResult.cs
- WmiEventSink.cs
- ComboBox.cs
- ServiceInstanceProvider.cs
- DataListItemCollection.cs
- QueryProcessor.cs
- ExtenderProvidedPropertyAttribute.cs
- LogicalExpressionEditor.cs
- ServerIdentity.cs
- ContourSegment.cs
- OpCodes.cs
- Cursor.cs
- CachedBitmap.cs
- InternalTypeHelper.cs
- PageSettings.cs
- PopupEventArgs.cs
- ProgressBarRenderer.cs
- PolyLineSegment.cs
- SQLInt16Storage.cs
- FillErrorEventArgs.cs
- BaseInfoTable.cs
- Console.cs
- SchemaAttDef.cs
- SetterBaseCollection.cs
- NetCodeGroup.cs
- LoginDesigner.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- WindowsAltTab.cs
- Compress.cs
- CopyNamespacesAction.cs
- AdRotator.cs
- SecurityCriticalDataForSet.cs
- Rule.cs
- MemberAssignment.cs
- translator.cs
- BufferedStream.cs
- JpegBitmapEncoder.cs
- SByteConverter.cs
- SettingsPropertyCollection.cs
- ContextStaticAttribute.cs
- NativeWindow.cs
- ImmutableDispatchRuntime.cs
- BitmapData.cs
- FloaterParagraph.cs
- WindowsTokenRoleProvider.cs
- TreeNodeStyleCollection.cs
- CodeFieldReferenceExpression.cs
- StringSource.cs
- ReversePositionQuery.cs
- UserControlBuildProvider.cs
- BitmapDecoder.cs
- QilStrConcatenator.cs
- XmlTypeMapping.cs
- ModuleElement.cs
- WebPartMovingEventArgs.cs
- ExpressionParser.cs
- TransformerTypeCollection.cs
- SRGSCompiler.cs
- PointF.cs
- ControlParameter.cs
- BookmarkEventArgs.cs
- WebContext.cs
- FileAuthorizationModule.cs
- SqlClientWrapperSmiStream.cs
- XmlWriter.cs
- UnsupportedPolicyOptionsException.cs
- PrePostDescendentsWalker.cs
- EDesignUtil.cs
- FixedSOMPage.cs
- HyperLinkStyle.cs
- DataSet.cs
- DynamicRendererThreadManager.cs
- Bitmap.cs
- Vector3D.cs
- newinstructionaction.cs
- Matrix3D.cs
- _Rfc2616CacheValidators.cs
- CodePropertyReferenceExpression.cs
- ADRoleFactory.cs