Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Data / PriorityBinding.cs / 1305600 / PriorityBinding.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Defines PriorityBinding object, which stores information // for creating instances of PriorityBindingExpression objects. // // See spec at http://avalon/connecteddata/Specs/Data%20Binding.mht // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Collections.ObjectModel; // Collectionusing System.ComponentModel; using System.Globalization; using System.Windows.Markup; using MS.Internal.Data; using MS.Utility; namespace System.Windows.Data { /// /// Describes a collection of bindings attached to a single property. /// These behave as "priority" bindings, meaning that the property /// receives its value from the first binding in the collection that /// can produce a legal value. /// [ContentProperty("Bindings")] public class PriorityBinding : BindingBase, IAddChild { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- ///Constructor public PriorityBinding() : base() { _bindingCollection = new BindingCollection(this, new BindingCollectionChangedCallback(OnBindingCollectionChanged)); } #region IAddChild ////// Called to Add the object as a Child. /// /// /// Object to add as a child - must have type BindingBase /// void IAddChild.AddChild(Object value) { BindingBase binding = value as BindingBase; if (binding != null) Bindings.Add(binding); else throw new ArgumentException(SR.Get(SRID.ChildHasWrongType, this.GetType().Name, "BindingBase", value.GetType().FullName), "value"); } ////// Called when text appears under the tag in markup /// /// /// Text to Add to the Object /// void IAddChild.AddText(string text) { XamlSerializerUtil.ThrowIfNonWhiteSpaceInAddText(text, this); } #endregion IAddChild //------------------------------------------------------ // // Public Properties // //----------------------------------------------------- ///List of inner bindings [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public CollectionBindings { get { return _bindingCollection; } } /// /// This method is used by TypeDescriptor to determine if this property should /// be serialized. /// [EditorBrowsable(EditorBrowsableState.Never)] public bool ShouldSerializeBindings() { return (Bindings != null && Bindings.Count > 0); } //------------------------------------------------------ // // Protected Methods // //------------------------------------------------------ ////// Create an appropriate expression for this Binding, to be attached /// to the given DependencyProperty on the given DependencyObject. /// internal override BindingExpressionBase CreateBindingExpressionOverride(DependencyObject target, DependencyProperty dp, BindingExpressionBase owner) { return PriorityBindingExpression.CreateBindingExpression(target, dp, this, owner); } internal override BindingBase CreateClone() { return new PriorityBinding(); } internal override void InitializeClone(BindingBase baseClone, BindingMode mode) { PriorityBinding clone = (PriorityBinding)baseClone; for (int i=0; i<=_bindingCollection.Count; ++i) { clone._bindingCollection.Add(_bindingCollection[i].Clone(mode)); } base.InitializeClone(baseClone, mode); } private void OnBindingCollectionChanged() { CheckSealed(); } //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ BindingCollection _bindingCollection; } } // 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
- DataRelationPropertyDescriptor.cs
- AliasGenerator.cs
- DataBoundControlActionList.cs
- ADMembershipUser.cs
- SettingsContext.cs
- SessionStateContainer.cs
- DrawItemEvent.cs
- ContentPropertyAttribute.cs
- GAC.cs
- ThreadSafeList.cs
- ListControlConvertEventArgs.cs
- Transform.cs
- PermissionRequestEvidence.cs
- ScrollChrome.cs
- InternalResources.cs
- DBConcurrencyException.cs
- HostedHttpContext.cs
- IODescriptionAttribute.cs
- ISAPIApplicationHost.cs
- CreateUserErrorEventArgs.cs
- TextPointerBase.cs
- HandlerFactoryCache.cs
- EdmToObjectNamespaceMap.cs
- Transform3DCollection.cs
- LayoutDump.cs
- ProxyGenerator.cs
- ReachSerializer.cs
- PeerApplicationLaunchInfo.cs
- TextServicesCompartment.cs
- SmtpMail.cs
- WebPartConnectionsConnectVerb.cs
- SafeProcessHandle.cs
- Model3D.cs
- XmlDsigSep2000.cs
- RevocationPoint.cs
- _OSSOCK.cs
- ClientSettingsSection.cs
- XmlSchemaRedefine.cs
- CacheMemory.cs
- InvalidCastException.cs
- SimpleNameService.cs
- Listbox.cs
- EllipseGeometry.cs
- RenameRuleObjectDialog.Designer.cs
- ReadOnlyHierarchicalDataSourceView.cs
- ToolTipAutomationPeer.cs
- StorageEntitySetMapping.cs
- LocatorGroup.cs
- HostedTransportConfigurationManager.cs
- EventLogPermissionEntryCollection.cs
- ClientData.cs
- BindingBase.cs
- BookmarkEventArgs.cs
- XmlSerializerFactory.cs
- WebPartCatalogCloseVerb.cs
- DataGridParentRows.cs
- SimplePropertyEntry.cs
- ProxyWebPart.cs
- DefaultBindingPropertyAttribute.cs
- AspCompat.cs
- Compiler.cs
- ViewDesigner.cs
- DateTimeFormatInfo.cs
- ToolboxItemSnapLineBehavior.cs
- LocalizationParserHooks.cs
- OperationContractAttribute.cs
- SubclassTypeValidator.cs
- ConnectorEditor.cs
- AssertHelper.cs
- FocusTracker.cs
- PreloadedPackages.cs
- Thread.cs
- DataServiceProcessingPipelineEventArgs.cs
- TextTrailingWordEllipsis.cs
- ExclusiveHandle.cs
- InstanceHandleConflictException.cs
- COAUTHINFO.cs
- FillBehavior.cs
- PropertyOverridesDialog.cs
- OuterGlowBitmapEffect.cs
- LogicalCallContext.cs
- DelegatingMessage.cs
- RenderData.cs
- ParentUndoUnit.cs
- QilInvokeEarlyBound.cs
- PathNode.cs
- ProtocolsConfigurationEntry.cs
- ComAdminWrapper.cs
- AdapterUtil.cs
- XmlEnumAttribute.cs
- CleanUpVirtualizedItemEventArgs.cs
- SweepDirectionValidation.cs
- StackBuilderSink.cs
- FontDriver.cs
- RSAPKCS1SignatureDeformatter.cs
- PasswordRecovery.cs
- SemaphoreFullException.cs
- FormViewInsertEventArgs.cs
- EncoderExceptionFallback.cs
- DataGridViewLayoutData.cs