Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Controls / GroupItem.cs / 1 / GroupItem.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: GroupItem object - root of the UI subtree generated for a CollectionViewGroup // // Specs: [....]/connecteddata/M5%20General%20Docs/Data%20Styling.mht // //--------------------------------------------------------------------------- using System; using System.Collections; namespace System.Windows.Controls { ////// A GroupItem appears as the root of the visual subtree generated for a CollectionViewGroup. /// public class GroupItem : ContentControl { static GroupItem() { DefaultStyleKeyProperty.OverrideMetadata(typeof(GroupItem), new FrameworkPropertyMetadata(typeof(GroupItem))); _dType = DependencyObjectType.FromSystemTypeInternal(typeof(GroupItem)); // GroupItems should not be focusable by default FocusableProperty.OverrideMetadata(typeof(GroupItem), new FrameworkPropertyMetadata(false)); } ////// Creates AutomationPeer ( protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer() { return new System.Windows.Automation.Peers.GroupItemAutomationPeer(this); } ///) /// /// Gives a string representation of this object. /// ///internal override string GetPlainText() { System.Windows.Data.CollectionViewGroup cvg = Content as System.Windows.Data.CollectionViewGroup; if (cvg != null) { return cvg.Name.ToString(); } return base.GetPlainText(); } //----------------------------------------------------- // // Internal Properties // //----------------------------------------------------- internal ItemContainerGenerator Generator { get { return _generator; } set { _generator = value; } } //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- internal void PrepareItemContainer(object item) { ItemContainerGenerator generator = Generator.Parent; GroupStyle groupStyle = generator.GroupStyle; // apply the container style Style style = groupStyle.ContainerStyle; // no ContainerStyle set, try ContainerStyleSelector if (style == null) { if (groupStyle.ContainerStyleSelector != null) { style = groupStyle.ContainerStyleSelector.SelectStyle(item, this); } } // apply the style, if found if (style != null) { // verify style is appropriate before applying it if (!style.TargetType.IsInstanceOfType(this)) throw new InvalidOperationException(SR.Get(SRID.StyleForWrongType, style.TargetType.Name, this.GetType().Name)); this.Style = style; this.WriteInternalFlag2(InternalFlags2.IsStyleSetFromGenerator, true); } // forward the header template information if (!HasNonDefaultValue(ContentProperty)) this.Content = item; if (!HasNonDefaultValue(ContentTemplateProperty)) this.ContentTemplate = groupStyle.HeaderTemplate; if (!HasNonDefaultValue(ContentTemplateSelectorProperty)) this.ContentTemplateSelector = groupStyle.HeaderTemplateSelector; } internal void ClearContainerForItem(object item) { ItemContainerGenerator generator = Generator.Parent; GroupStyle groupStyle = generator.GroupStyle; if (Object.Equals(this.Content, item)) ClearValue(ContentProperty); if (this.ContentTemplate == groupStyle.HeaderTemplate) ClearValue(ContentTemplateProperty); if (this.ContentTemplateSelector == groupStyle.HeaderTemplateSelector) ClearValue(ContentTemplateSelectorProperty); Generator.Release(); } //------------------------------------------------------ // // Private Fields // //------------------------------------------------------ ItemContainerGenerator _generator; #region DTypeThemeStyleKey // Returns the DependencyObjectType for the registered ThemeStyleKey's default // value. Controls will override this method to return approriate types. internal override DependencyObjectType DTypeThemeStyleKey { get { return _dType; } } private static DependencyObjectType _dType; #endregion DTypeThemeStyleKey } } // 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
- Validator.cs
- AspCompat.cs
- TextTreeTextElementNode.cs
- MediaElementAutomationPeer.cs
- WebPartDescriptionCollection.cs
- TypeExtensionSerializer.cs
- Timeline.cs
- AdjustableArrowCap.cs
- ChildTable.cs
- JoinCqlBlock.cs
- XslCompiledTransform.cs
- ToolStripDropTargetManager.cs
- InstanceKey.cs
- ImageSourceValueSerializer.cs
- StateBag.cs
- HostExecutionContextManager.cs
- SqlProviderManifest.cs
- ILGenerator.cs
- AssociationTypeEmitter.cs
- SplitterCancelEvent.cs
- Cell.cs
- CodeFieldReferenceExpression.cs
- ClassValidator.cs
- PenCursorManager.cs
- SetterBase.cs
- ScriptControl.cs
- TypeReference.cs
- MimeFormatter.cs
- MethodBuilderInstantiation.cs
- HierarchicalDataBoundControl.cs
- IpcChannelHelper.cs
- RuntimeConfig.cs
- Model3DCollection.cs
- VarRemapper.cs
- LockCookie.cs
- SoapEnumAttribute.cs
- DrawToolTipEventArgs.cs
- ObjectDataProvider.cs
- DataServiceKeyAttribute.cs
- ActivityValidationServices.cs
- SpinWait.cs
- HeaderedContentControl.cs
- TemplateGroupCollection.cs
- SiblingIterators.cs
- CatalogZoneAutoFormat.cs
- XslTransform.cs
- AsyncStreamReader.cs
- ErrorStyle.cs
- SerialStream.cs
- PeerToPeerException.cs
- SplitterDesigner.cs
- AppDomainResourcePerfCounters.cs
- SingleTagSectionHandler.cs
- CmsUtils.cs
- DataListCommandEventArgs.cs
- VisualCollection.cs
- ComboBoxRenderer.cs
- CompositeTypefaceMetrics.cs
- LongPath.cs
- ParallelTimeline.cs
- DomNameTable.cs
- Model3DGroup.cs
- PropertyEntry.cs
- PeerToPeerException.cs
- ActivityExecutor.cs
- MediaElementAutomationPeer.cs
- SdlChannelSink.cs
- ListDictionary.cs
- DesignerActionVerbList.cs
- DependencyProperty.cs
- EntityCommandExecutionException.cs
- ColumnMapTranslator.cs
- InkPresenterAutomationPeer.cs
- CommandID.cs
- BitmapSource.cs
- SplineKeyFrames.cs
- ClientTarget.cs
- ConfigXmlCDataSection.cs
- EastAsianLunisolarCalendar.cs
- TraceData.cs
- FrameworkElementFactoryMarkupObject.cs
- RepeatBehaviorConverter.cs
- WebPartChrome.cs
- GroupJoinQueryOperator.cs
- SqlDelegatedTransaction.cs
- CopyNodeSetAction.cs
- UIElementParaClient.cs
- SystemIPv6InterfaceProperties.cs
- EmbeddedObject.cs
- XmlKeywords.cs
- EntityContainerEntitySet.cs
- TimelineClockCollection.cs
- baseaxisquery.cs
- PropertyGridEditorPart.cs
- NewArrayExpression.cs
- MemoryPressure.cs
- TiffBitmapDecoder.cs
- Socket.cs
- NetSectionGroup.cs
- ToolZoneDesigner.cs