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
- SqlDependencyListener.cs
- NonValidatingSecurityTokenAuthenticator.cs
- SerializerDescriptor.cs
- ClientApiGenerator.cs
- RootAction.cs
- OperationPerformanceCounters.cs
- XmlCollation.cs
- HttpRequestTraceRecord.cs
- DataGridViewElement.cs
- UserPreferenceChangedEventArgs.cs
- XmlSchemaSimpleTypeRestriction.cs
- HandleRef.cs
- DelegateTypeInfo.cs
- DateTimeFormatInfo.cs
- ParserHooks.cs
- OrderToken.cs
- RepeaterCommandEventArgs.cs
- TracedNativeMethods.cs
- WriteableOnDemandPackagePart.cs
- MessageQueueEnumerator.cs
- Pens.cs
- DocumentAutomationPeer.cs
- NotifyCollectionChangedEventArgs.cs
- BitmapEffectDrawingContextState.cs
- FixUp.cs
- RectAnimationClockResource.cs
- PersonalizableAttribute.cs
- EntityViewContainer.cs
- ConfigurationValues.cs
- TrustDriver.cs
- EmbeddedMailObject.cs
- DbConnectionStringBuilder.cs
- ConnectionManagementSection.cs
- FrameworkElementFactoryMarkupObject.cs
- ThicknessAnimationUsingKeyFrames.cs
- StringFunctions.cs
- WaveHeader.cs
- InputLanguageManager.cs
- FamilyTypeface.cs
- InvalidCommandTreeException.cs
- DataGridTable.cs
- RadioButtonList.cs
- ExpandoObject.cs
- Matrix3D.cs
- PieceNameHelper.cs
- Reference.cs
- DocumentXmlWriter.cs
- TextProviderWrapper.cs
- TextRangeEdit.cs
- TypeLibConverter.cs
- XmlSchemaSubstitutionGroup.cs
- DataGridViewCellStyle.cs
- DbException.cs
- ContainerSelectorBehavior.cs
- ConnectionPoint.cs
- EditorResources.cs
- XmlQualifiedName.cs
- WebMessageEncodingBindingElement.cs
- ContentWrapperAttribute.cs
- SystemWebSectionGroup.cs
- ExceptionDetail.cs
- HtmlTextArea.cs
- ExtentCqlBlock.cs
- AsyncOperationManager.cs
- TrackingLocation.cs
- SerializationHelper.cs
- SizeConverter.cs
- NamespaceCollection.cs
- HttpHandler.cs
- SecurityUtils.cs
- SortExpressionBuilder.cs
- Viewport3DAutomationPeer.cs
- XmlSchemaSubstitutionGroup.cs
- WebResourceAttribute.cs
- PackagingUtilities.cs
- PointF.cs
- UnsettableComboBox.cs
- PrivilegedConfigurationManager.cs
- ExclusiveTcpTransportManager.cs
- HMAC.cs
- BamlReader.cs
- Composition.cs
- PenThreadWorker.cs
- SqlConnectionFactory.cs
- AuthenticatedStream.cs
- StringAnimationBase.cs
- SelectionPattern.cs
- EntityCommandExecutionException.cs
- DetailsViewPagerRow.cs
- SecUtil.cs
- DataContractJsonSerializerOperationBehavior.cs
- TextStore.cs
- GetPolicyDetailsRequest.cs
- Delay.cs
- WaitHandle.cs
- ExpandCollapseProviderWrapper.cs
- XmlNode.cs
- XmlSerializationGeneratedCode.cs
- SystemFonts.cs
- ImageField.cs