Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / 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: 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. //---------------------------------------------------------------------------- // // // 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
- CommandLibraryHelper.cs
- InkCollectionBehavior.cs
- Utils.cs
- BroadcastEventHelper.cs
- DocumentationServerProtocol.cs
- DataGridTextBoxColumn.cs
- PrimitiveXmlSerializers.cs
- DiagnosticsConfiguration.cs
- SafeRightsManagementSessionHandle.cs
- DiscoveryMessageProperty.cs
- AttachmentService.cs
- DataGridBoolColumn.cs
- InternalException.cs
- sqlnorm.cs
- TimeSpanOrInfiniteValidator.cs
- Converter.cs
- ProcessingInstructionAction.cs
- HashMembershipCondition.cs
- RequestCachingSection.cs
- DecoratedNameAttribute.cs
- TranslateTransform.cs
- isolationinterop.cs
- DomNameTable.cs
- ZoneLinkButton.cs
- X509Certificate2.cs
- SoapEnumAttribute.cs
- DataGridViewBindingCompleteEventArgs.cs
- ResizingMessageFilter.cs
- XmlSchemaSequence.cs
- AstTree.cs
- DispatcherEventArgs.cs
- UDPClient.cs
- ImageSourceTypeConverter.cs
- TextHidden.cs
- DecoderExceptionFallback.cs
- UserControlAutomationPeer.cs
- ListViewAutomationPeer.cs
- Win32Exception.cs
- ConvertEvent.cs
- XmlNodeList.cs
- FrameworkPropertyMetadata.cs
- CryptoHelper.cs
- TextBoxView.cs
- DynamicDiscoveryDocument.cs
- BindingOperations.cs
- HttpRawResponse.cs
- Convert.cs
- DataSourceSelectArguments.cs
- TcpServerChannel.cs
- ContractBase.cs
- SupportingTokenAuthenticatorSpecification.cs
- QilInvoke.cs
- ChangesetResponse.cs
- XmlAttributeCollection.cs
- CodeAttachEventStatement.cs
- SrgsDocumentParser.cs
- Identity.cs
- XmlFormatExtensionPrefixAttribute.cs
- SettingsProperty.cs
- EdmToObjectNamespaceMap.cs
- SQLDecimalStorage.cs
- SpeechEvent.cs
- QueryContinueDragEvent.cs
- EventWaitHandleSecurity.cs
- ParameterInfo.cs
- EventHandlersStore.cs
- SchemaCollectionPreprocessor.cs
- ThaiBuddhistCalendar.cs
- PageSettings.cs
- XPathSelfQuery.cs
- ImageMetadata.cs
- Vector3DAnimationUsingKeyFrames.cs
- Base64Decoder.cs
- TemplateControlBuildProvider.cs
- TypeUtils.cs
- ProcessModelInfo.cs
- TreeNodeStyleCollection.cs
- BuildManager.cs
- ContentPathSegment.cs
- AssemblyInfo.cs
- MsmqProcessProtocolHandler.cs
- UnSafeCharBuffer.cs
- MultipleViewProviderWrapper.cs
- XmlDocumentFragment.cs
- UIHelper.cs
- DataGridTextBox.cs
- WebWorkflowRole.cs
- IgnoreFlushAndCloseStream.cs
- OleDbConnection.cs
- ImageInfo.cs
- DiagnosticsConfigurationHandler.cs
- DataGridItem.cs
- QilSortKey.cs
- newinstructionaction.cs
- SqlParameter.cs
- RadialGradientBrush.cs
- EventData.cs
- TraceContext.cs
- Brush.cs
- Win32Native.cs