Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Controls / GroupItem.cs / 1305600 / GroupItem.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: GroupItem object - root of the UI subtree generated for a CollectionViewGroup // // Specs: http://avalon/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 && cvg.Name != 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) { if (Generator == null) return; // user-declared GroupItem - ignore (bug 108423) 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; if (!HasNonDefaultValue(ContentStringFormatProperty)) this.ContentStringFormat = groupStyle.HeaderStringFormat; } internal void ClearContainerForItem(object item) { if (Generator == null) return; // user-declared GroupItem - ignore (bug 108423) 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); if (this.ContentStringFormat == groupStyle.HeaderStringFormat) ClearValue(ContentStringFormatProperty); 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
- RegexMatch.cs
- StateDesignerConnector.cs
- LazyTextWriterCreator.cs
- StylusPlugInCollection.cs
- XmlRootAttribute.cs
- SessionSymmetricMessageSecurityProtocolFactory.cs
- SQLStringStorage.cs
- PropertyDescriptor.cs
- BitmapFrame.cs
- TabletDevice.cs
- DataSourceConverter.cs
- SchemaCollectionPreprocessor.cs
- BitmapEffectOutputConnector.cs
- Polygon.cs
- DataGridViewRowPrePaintEventArgs.cs
- ObjectDataSourceDesigner.cs
- HtmlInputControl.cs
- UserControl.cs
- AutoSizeComboBox.cs
- ConfigsHelper.cs
- ModifiableIteratorCollection.cs
- DataGridViewComboBoxColumn.cs
- CacheSection.cs
- FixedPosition.cs
- PersonalizationState.cs
- ExpressionBuilderContext.cs
- Metafile.cs
- HotSpot.cs
- ChannelCacheDefaults.cs
- EntityParameterCollection.cs
- QuaternionRotation3D.cs
- Image.cs
- DSASignatureFormatter.cs
- XmlDocumentFragment.cs
- PrimarySelectionGlyph.cs
- DeleteHelper.cs
- LeftCellWrapper.cs
- ProfileService.cs
- ConcurrencyMode.cs
- ProfileSection.cs
- SequenceRangeCollection.cs
- DeclaredTypeValidatorAttribute.cs
- XmlDataSourceDesigner.cs
- DataRowComparer.cs
- Ipv6Element.cs
- ClosableStream.cs
- DataGridColumnStyleMappingNameEditor.cs
- TableItemStyle.cs
- LicenseProviderAttribute.cs
- PolyLineSegment.cs
- StylusPointPropertyInfo.cs
- DragCompletedEventArgs.cs
- PackageRelationshipSelector.cs
- LinearGradientBrush.cs
- JsonFormatGeneratorStatics.cs
- LoginView.cs
- GridViewColumnHeaderAutomationPeer.cs
- PixelFormatConverter.cs
- ToolStripTextBox.cs
- WindowsBrush.cs
- HttpDictionary.cs
- ToolboxBitmapAttribute.cs
- LineMetrics.cs
- KoreanLunisolarCalendar.cs
- Int32Collection.cs
- ContainerSelectorActiveEvent.cs
- MetadataArtifactLoaderComposite.cs
- StaticExtensionConverter.cs
- PerformanceCounterPermission.cs
- ChineseLunisolarCalendar.cs
- FontFamilyConverter.cs
- MenuStrip.cs
- DataMemberFieldEditor.cs
- DbConnectionPoolGroupProviderInfo.cs
- ButtonBase.cs
- ClientSession.cs
- Msmq4PoisonHandler.cs
- IgnoreSection.cs
- CorrelationManager.cs
- WorkItem.cs
- PrintPreviewDialog.cs
- ConfigurationElement.cs
- CaseInsensitiveComparer.cs
- CornerRadiusConverter.cs
- ItemCollection.cs
- ControlPropertyNameConverter.cs
- NetStream.cs
- HierarchicalDataSourceControl.cs
- Simplifier.cs
- StructuralComparisons.cs
- PathParser.cs
- DataGridViewCell.cs
- QueryContinueDragEventArgs.cs
- COM2Properties.cs
- WebPartCancelEventArgs.cs
- SizeF.cs
- InlineUIContainer.cs
- Latin1Encoding.cs
- XmlTextWriter.cs
- SamlAuthenticationClaimResource.cs