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
- ContextMenuAutomationPeer.cs
- Transform3D.cs
- PhonemeEventArgs.cs
- ColumnResult.cs
- SpeechAudioFormatInfo.cs
- SerialStream.cs
- StringFunctions.cs
- ServiceElementCollection.cs
- DataRelationPropertyDescriptor.cs
- EntityClientCacheEntry.cs
- _LazyAsyncResult.cs
- FormsAuthenticationTicket.cs
- Pkcs7Recipient.cs
- XmlSerializerFactory.cs
- TextWriter.cs
- WebPartVerbCollection.cs
- PingOptions.cs
- ParenExpr.cs
- SqlUserDefinedAggregateAttribute.cs
- CollectionContainer.cs
- ProtocolImporter.cs
- FileEnumerator.cs
- Soap12ProtocolReflector.cs
- DeferredSelectedIndexReference.cs
- X509CertificateValidator.cs
- Emitter.cs
- DataTableReaderListener.cs
- TypedTableGenerator.cs
- SendSecurityHeader.cs
- MasterPageBuildProvider.cs
- ConfigurationCollectionAttribute.cs
- SspiSecurityTokenParameters.cs
- FixedDocumentPaginator.cs
- oledbconnectionstring.cs
- srgsitem.cs
- DefinitionBase.cs
- UdpDiscoveryEndpointProvider.cs
- CodeSubDirectory.cs
- DataServiceStreamResponse.cs
- DataGridTable.cs
- GlyphInfoList.cs
- RequestValidator.cs
- SignatureDescription.cs
- MonthCalendarDesigner.cs
- BaseValidator.cs
- rsa.cs
- FormViewModeEventArgs.cs
- SqlDataSourceView.cs
- ResourceProviderFactory.cs
- DivideByZeroException.cs
- ErrorsHelper.cs
- sqlcontext.cs
- XmlTextReaderImpl.cs
- SiteMapProvider.cs
- ToolStripPanelCell.cs
- SettingsBindableAttribute.cs
- AssemblyFilter.cs
- XmlSchemaType.cs
- Size3D.cs
- HandlerMappingMemo.cs
- MustUnderstandBehavior.cs
- DataGridTextBoxColumn.cs
- HtmlInputPassword.cs
- Simplifier.cs
- DependencyObjectCodeDomSerializer.cs
- DataSysAttribute.cs
- FullTextBreakpoint.cs
- COM2PictureConverter.cs
- StorageEntityContainerMapping.cs
- DiscreteKeyFrames.cs
- Typeface.cs
- Axis.cs
- wmiprovider.cs
- FixedPageProcessor.cs
- TakeOrSkipQueryOperator.cs
- oledbmetadatacollectionnames.cs
- CanExecuteRoutedEventArgs.cs
- ObjectViewListener.cs
- DeleteHelper.cs
- ToolStripItemClickedEventArgs.cs
- TransactionException.cs
- Brush.cs
- SqlConnection.cs
- shaperfactory.cs
- FormView.cs
- TemplateBindingExpression.cs
- _ScatterGatherBuffers.cs
- ParameterCollection.cs
- OleDbRowUpdatedEvent.cs
- BaseCAMarshaler.cs
- RequestSecurityTokenForRemoteTokenFactory.cs
- Int32Storage.cs
- AdPostCacheSubstitution.cs
- ToolStripAdornerWindowService.cs
- CodeLabeledStatement.cs
- StateManagedCollection.cs
- InputBinding.cs
- WebBrowserUriTypeConverter.cs
- TemplateControlCodeDomTreeGenerator.cs
- MappingSource.cs