Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / DataTemplate.cs / 1 / DataTemplate.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: DataTemplate describes how to display a single data item. // // Specs: http://avalon/coreui/Specs%20%20Property%20Engine/Styling%20Revisited.doc // //--------------------------------------------------------------------------- using System.ComponentModel; using System.Windows.Controls; using System.Windows.Markup; namespace System.Windows { ////// DataTemplate describes how to display a single data item. /// [DictionaryKeyProperty("DataTemplateKey")] public class DataTemplate : FrameworkTemplate { #region Constructors //------------------------------------------------------------------- // // Constructors // //------------------------------------------------------------------- ////// DataTemplate Constructor /// public DataTemplate() { } ////// DataTemplate Constructor /// public DataTemplate(object dataType) { Exception ex = TemplateKey.ValidateDataType(dataType, "dataType"); if (ex != null) throw ex; _dataType = dataType; } #endregion Constructors #region Public Properties //-------------------------------------------------------------------- // // Public Properties // //------------------------------------------------------------------- ////// DataType for this DataTemplate. If the template is intended /// for object data, this is the Type of the data. If the /// template is intended for XML data, this is the tag name /// of the data (i.e. a string). /// [DefaultValue(null)] public object DataType { get { return _dataType; } set { Exception ex = TemplateKey.ValidateDataType(value, "value"); if (ex != null) throw ex; CheckSealed(); _dataType = value; } } ////// Collection of Triggers /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] [DependsOn("VisualTree")] public TriggerCollection Triggers { get { if (_triggers == null) { _triggers = new TriggerCollection(); // If the template has been sealed prior to this the newly // created TriggerCollection also needs to be sealed if (IsSealed) { _triggers.Seal(); } } return _triggers; } } ////// The key that will be used if the DataTemplate is added to a /// ResourceDictionary in Xaml without a specified Key (x:Key). /// public object DataTemplateKey { get { return (DataType != null) ? new DataTemplateKey(DataType) : null; } } #endregion PublicProperties #region Internal Properties //-------------------------------------------------------------------- // // Internal Properties // //-------------------------------------------------------------------- // // TargetType for DataTemplate. This is override is // so FrameworkTemplate can see this property. // internal override Type TargetTypeInternal { get { return DefaultTargetType; } } // Subclasses must provide a way for the parser to directly set the // target type. For DataTemplate, this is not allowed. internal override void SetTargetTypeInternal(Type targetType) { throw new InvalidOperationException(SR.Get(SRID.TemplateNotTargetType)); } // // DataType for DataTemplate. This is override is // so FrameworkTemplate can see this property. // internal override object DataTypeInternal { get { return DataType; } } // // Collection of Triggers for a DataTemplate. This is // override is so FrameworkTemplate can see this property. // internal override TriggerCollection TriggersInternal { get { return Triggers; } } // Target type of DataTrigger is ContentPresenter static internal Type DefaultTargetType { get { return typeof(ContentPresenter); } } #endregion Internal Properties #region Protected Methods //------------------------------------------------------------------- // // Protected Methods // //-------------------------------------------------------------------- ////// Validate against the following rules /// 1. Must have a non-null feTemplatedParent /// 2. A DataTemplate must be applied to a ContentPresenter /// protected override void ValidateTemplatedParent(FrameworkElement templatedParent) { // Must have a non-null feTemplatedParent if (templatedParent == null) { throw new ArgumentNullException("templatedParent"); } // A DataTemplate must be applied to a ContentPresenter if (!(templatedParent is ContentPresenter)) { throw new ArgumentException(SR.Get(SRID.TemplateTargetTypeMismatch, "ContentPresenter", templatedParent.GetType().Name)); } } #endregion Protected Methods #region Data private object _dataType; private TriggerCollection _triggers; #endregion Data } } // 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: DataTemplate describes how to display a single data item. // // Specs: http://avalon/coreui/Specs%20%20Property%20Engine/Styling%20Revisited.doc // //--------------------------------------------------------------------------- using System.ComponentModel; using System.Windows.Controls; using System.Windows.Markup; namespace System.Windows { ////// DataTemplate describes how to display a single data item. /// [DictionaryKeyProperty("DataTemplateKey")] public class DataTemplate : FrameworkTemplate { #region Constructors //------------------------------------------------------------------- // // Constructors // //------------------------------------------------------------------- ////// DataTemplate Constructor /// public DataTemplate() { } ////// DataTemplate Constructor /// public DataTemplate(object dataType) { Exception ex = TemplateKey.ValidateDataType(dataType, "dataType"); if (ex != null) throw ex; _dataType = dataType; } #endregion Constructors #region Public Properties //-------------------------------------------------------------------- // // Public Properties // //------------------------------------------------------------------- ////// DataType for this DataTemplate. If the template is intended /// for object data, this is the Type of the data. If the /// template is intended for XML data, this is the tag name /// of the data (i.e. a string). /// [DefaultValue(null)] public object DataType { get { return _dataType; } set { Exception ex = TemplateKey.ValidateDataType(value, "value"); if (ex != null) throw ex; CheckSealed(); _dataType = value; } } ////// Collection of Triggers /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] [DependsOn("VisualTree")] public TriggerCollection Triggers { get { if (_triggers == null) { _triggers = new TriggerCollection(); // If the template has been sealed prior to this the newly // created TriggerCollection also needs to be sealed if (IsSealed) { _triggers.Seal(); } } return _triggers; } } ////// The key that will be used if the DataTemplate is added to a /// ResourceDictionary in Xaml without a specified Key (x:Key). /// public object DataTemplateKey { get { return (DataType != null) ? new DataTemplateKey(DataType) : null; } } #endregion PublicProperties #region Internal Properties //-------------------------------------------------------------------- // // Internal Properties // //-------------------------------------------------------------------- // // TargetType for DataTemplate. This is override is // so FrameworkTemplate can see this property. // internal override Type TargetTypeInternal { get { return DefaultTargetType; } } // Subclasses must provide a way for the parser to directly set the // target type. For DataTemplate, this is not allowed. internal override void SetTargetTypeInternal(Type targetType) { throw new InvalidOperationException(SR.Get(SRID.TemplateNotTargetType)); } // // DataType for DataTemplate. This is override is // so FrameworkTemplate can see this property. // internal override object DataTypeInternal { get { return DataType; } } // // Collection of Triggers for a DataTemplate. This is // override is so FrameworkTemplate can see this property. // internal override TriggerCollection TriggersInternal { get { return Triggers; } } // Target type of DataTrigger is ContentPresenter static internal Type DefaultTargetType { get { return typeof(ContentPresenter); } } #endregion Internal Properties #region Protected Methods //------------------------------------------------------------------- // // Protected Methods // //-------------------------------------------------------------------- ////// Validate against the following rules /// 1. Must have a non-null feTemplatedParent /// 2. A DataTemplate must be applied to a ContentPresenter /// protected override void ValidateTemplatedParent(FrameworkElement templatedParent) { // Must have a non-null feTemplatedParent if (templatedParent == null) { throw new ArgumentNullException("templatedParent"); } // A DataTemplate must be applied to a ContentPresenter if (!(templatedParent is ContentPresenter)) { throw new ArgumentException(SR.Get(SRID.TemplateTargetTypeMismatch, "ContentPresenter", templatedParent.GetType().Name)); } } #endregion Protected Methods #region Data private object _dataType; private TriggerCollection _triggers; #endregion Data } } // 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
- AppendHelper.cs
- DataRelationPropertyDescriptor.cs
- XmlBinaryReader.cs
- ContainerActivationHelper.cs
- SkewTransform.cs
- FileRegion.cs
- ServiceDocumentFormatter.cs
- MetafileHeaderWmf.cs
- InvalidPropValue.cs
- ExtendedPropertiesHandler.cs
- ByteStreamGeometryContext.cs
- RichTextBox.cs
- CollectionEditorDialog.cs
- FrameworkElement.cs
- WeakHashtable.cs
- Span.cs
- ProfileProvider.cs
- DataGridViewCellPaintingEventArgs.cs
- DesignerActionItem.cs
- XmlSchemaImporter.cs
- ProfileParameter.cs
- DataBindingList.cs
- PassportAuthenticationModule.cs
- XmlUtil.cs
- WeakEventTable.cs
- ObjectSpanRewriter.cs
- CodeSubDirectoriesCollection.cs
- WindowProviderWrapper.cs
- SchemaCollectionCompiler.cs
- XmlChildEnumerator.cs
- MetaModel.cs
- DataServiceQueryOfT.cs
- AudioBase.cs
- VectorAnimationBase.cs
- BaseCodeDomTreeGenerator.cs
- CodeFieldReferenceExpression.cs
- ByteStorage.cs
- XPathQueryGenerator.cs
- AutoResetEvent.cs
- UserControlAutomationPeer.cs
- ZipIOBlockManager.cs
- ExceptionList.cs
- TableStyle.cs
- SyntaxCheck.cs
- SortDescription.cs
- FlowNode.cs
- CryptoStream.cs
- ReflectTypeDescriptionProvider.cs
- SystemIPGlobalProperties.cs
- TextFormatterContext.cs
- UserControlCodeDomTreeGenerator.cs
- DataShape.cs
- LinqDataView.cs
- wmiprovider.cs
- Predicate.cs
- DataColumn.cs
- EmissiveMaterial.cs
- DBAsyncResult.cs
- RegexWorker.cs
- QueryOpeningEnumerator.cs
- DesignerActionItem.cs
- UnknownBitmapEncoder.cs
- TreeNodeBinding.cs
- FilterQueryOptionExpression.cs
- StrokeRenderer.cs
- BehaviorEditorPart.cs
- ImageIndexEditor.cs
- CodeExpressionStatement.cs
- CompilerGeneratedAttribute.cs
- Rotation3DKeyFrameCollection.cs
- BitmapEffectGroup.cs
- EnumBuilder.cs
- FontDialog.cs
- DesignerForm.cs
- ListView.cs
- BuilderPropertyEntry.cs
- PaintEvent.cs
- WindowsSolidBrush.cs
- HitTestWithPointDrawingContextWalker.cs
- VirtualDirectoryMappingCollection.cs
- SqlDataSource.cs
- BrowserCapabilitiesFactory.cs
- ActivityBindForm.cs
- DataGridLinkButton.cs
- SignatureToken.cs
- ThreadStaticAttribute.cs
- Version.cs
- RawStylusSystemGestureInputReport.cs
- PropertyMetadata.cs
- CompModSwitches.cs
- AmbientLight.cs
- BuildProviderAppliesToAttribute.cs
- InvocationExpression.cs
- CompiledAction.cs
- BitHelper.cs
- CodeDirectoryCompiler.cs
- StickyNoteContentControl.cs
- AutomationEvent.cs
- SharedConnectionInfo.cs
- RotateTransform3D.cs