Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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: [....]/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. /// 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; } } #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
- WebBrowserPermission.cs
- InkCanvasFeedbackAdorner.cs
- NGCPageContentSerializerAsync.cs
- WrappedIUnknown.cs
- SessionParameter.cs
- Array.cs
- EasingQuaternionKeyFrame.cs
- DependencyObjectProvider.cs
- MultiByteCodec.cs
- WindowsListView.cs
- AutomationPeer.cs
- CapiNative.cs
- XmlSiteMapProvider.cs
- GeometryGroup.cs
- X509CertificateCollection.cs
- ExtendedProtectionPolicyElement.cs
- RunInstallerAttribute.cs
- DBBindings.cs
- printdlgexmarshaler.cs
- HttpBrowserCapabilitiesBase.cs
- PixelFormat.cs
- ObjectStateManagerMetadata.cs
- PropertyPath.cs
- MouseGesture.cs
- Soap.cs
- LocalizationComments.cs
- DataGridViewBand.cs
- ServiceModelConfigurationSectionCollection.cs
- PreviewPageInfo.cs
- IpcPort.cs
- OdbcConnectionFactory.cs
- CodeTypeParameterCollection.cs
- XmlILModule.cs
- ConfigurationSection.cs
- LambdaCompiler.Logical.cs
- LOSFormatter.cs
- ListSourceHelper.cs
- ValidationErrorEventArgs.cs
- DispatcherTimer.cs
- PlacementWorkspace.cs
- FlowDocumentPage.cs
- XmlRootAttribute.cs
- ValidatingPropertiesEventArgs.cs
- FormattedTextSymbols.cs
- SQLBinary.cs
- ExtendedTransformFactory.cs
- DependencyPropertyAttribute.cs
- ListViewInsertEventArgs.cs
- EntryIndex.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- TabItemAutomationPeer.cs
- PageContentAsyncResult.cs
- COM2PropertyDescriptor.cs
- StandardMenuStripVerb.cs
- ControlCollection.cs
- Roles.cs
- NullRuntimeConfig.cs
- AssertFilter.cs
- ScriptingJsonSerializationSection.cs
- ProgressBarRenderer.cs
- ReflectEventDescriptor.cs
- WsdlInspector.cs
- Crypto.cs
- EntityEntry.cs
- CardSpaceShim.cs
- ConstantProjectedSlot.cs
- SearchForVirtualItemEventArgs.cs
- _NestedSingleAsyncResult.cs
- XamlHostingConfiguration.cs
- WindowsFormsLinkLabel.cs
- PhotoPrintingIntent.cs
- dbenumerator.cs
- FormatException.cs
- QueryExpression.cs
- WebPartDisplayMode.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- OleDbInfoMessageEvent.cs
- ProfileGroupSettingsCollection.cs
- CustomLineCap.cs
- FieldToken.cs
- VirtualPath.cs
- DataSourceXmlSerializer.cs
- CannotUnloadAppDomainException.cs
- AssemblySettingAttributes.cs
- BinaryObjectInfo.cs
- AdvancedBindingPropertyDescriptor.cs
- MethodSet.cs
- Message.cs
- TraceEventCache.cs
- RegisteredDisposeScript.cs
- CanonicalFontFamilyReference.cs
- SQLBytesStorage.cs
- basevalidator.cs
- Span.cs
- ConstructorExpr.cs
- DependencyPropertyDescriptor.cs
- SystemResourceHost.cs
- SurrogateDataContract.cs
- AdjustableArrowCap.cs
- PropertySet.cs