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
- Compiler.cs
- DigitShape.cs
- ScriptManagerProxy.cs
- XhtmlBasicSelectionListAdapter.cs
- XomlCompilerParameters.cs
- KeyFrames.cs
- MSAAWinEventWrap.cs
- DefaultTraceListener.cs
- DictionaryBase.cs
- AssemblyAttributesGoHere.cs
- TextFormatterHost.cs
- DoubleAnimation.cs
- TextSerializer.cs
- DataGridViewCellCollection.cs
- ProxyGenerationError.cs
- TextProperties.cs
- UnsafeNativeMethods.cs
- FileVersionInfo.cs
- TextServicesCompartmentContext.cs
- HtmlTableCell.cs
- ExcCanonicalXml.cs
- ProxyAttribute.cs
- OdbcParameter.cs
- Visitor.cs
- SettingsBindableAttribute.cs
- TextLineBreak.cs
- Propagator.JoinPropagator.cs
- URLMembershipCondition.cs
- WmpBitmapEncoder.cs
- XmlSerializerFactory.cs
- _SSPIWrapper.cs
- Expression.cs
- MdImport.cs
- HttpCapabilitiesEvaluator.cs
- ToolboxItemLoader.cs
- BitmapEffectDrawingContent.cs
- WebPartDeleteVerb.cs
- SiteMapNode.cs
- EntityDataSourceView.cs
- EntityTypeEmitter.cs
- StringValidator.cs
- BaseDataBoundControl.cs
- unitconverter.cs
- MembershipAdapter.cs
- DataError.cs
- OracleTimeSpan.cs
- DurableTimerExtension.cs
- ActiveXMessageFormatter.cs
- TextStore.cs
- BamlResourceContent.cs
- TableTextElementCollectionInternal.cs
- COM2FontConverter.cs
- WorkflowCreationContext.cs
- Serializer.cs
- WinEventHandler.cs
- ToolStripItemRenderEventArgs.cs
- PageCatalogPart.cs
- DataColumnChangeEvent.cs
- NavigationPropertySingletonExpression.cs
- ListViewUpdatedEventArgs.cs
- _NTAuthentication.cs
- SecurityElement.cs
- DispatcherExceptionFilterEventArgs.cs
- AsnEncodedData.cs
- VolatileResourceManager.cs
- SystemGatewayIPAddressInformation.cs
- GroupJoinQueryOperator.cs
- RowToFieldTransformer.cs
- DebugView.cs
- QilFactory.cs
- CodeCommentStatementCollection.cs
- indexingfiltermarshaler.cs
- TextDecoration.cs
- SqlParameter.cs
- DataTransferEventArgs.cs
- XappLauncher.cs
- FlowLayoutPanel.cs
- CmsInterop.cs
- Emitter.cs
- BStrWrapper.cs
- TableHeaderCell.cs
- BoundColumn.cs
- WindowsNonControl.cs
- BufferModeSettings.cs
- DefinitionUpdate.cs
- FixedSOMLineRanges.cs
- NativeMethods.cs
- SpnegoTokenProvider.cs
- Rotation3DKeyFrameCollection.cs
- BuiltInPermissionSets.cs
- TemplatedEditableDesignerRegion.cs
- TabItem.cs
- FilterQuery.cs
- ToolStripArrowRenderEventArgs.cs
- pingexception.cs
- FrameworkPropertyMetadata.cs
- SerializationSectionGroup.cs
- PolyBezierSegmentFigureLogic.cs
- ExplicitDiscriminatorMap.cs
- RowVisual.cs