Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / Data / PriorityBinding.cs / 1 / 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); } 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. //---------------------------------------------------------------------------- // //// 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); } 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
- SqlClientWrapperSmiStreamChars.cs
- CustomAttributeFormatException.cs
- formatstringdialog.cs
- CodeSnippetCompileUnit.cs
- CopyCodeAction.cs
- ImageAttributes.cs
- ResourcesGenerator.cs
- ValueTypeFixupInfo.cs
- SerialErrors.cs
- ChtmlTextWriter.cs
- PermissionSetEnumerator.cs
- FamilyMapCollection.cs
- Accessible.cs
- SourceFileBuildProvider.cs
- securitycriticaldataClass.cs
- PersonalizationAdministration.cs
- ProtocolState.cs
- ResourceAttributes.cs
- RoutedEventValueSerializer.cs
- SuppressMergeCheckAttribute.cs
- CoTaskMemHandle.cs
- MemberCollection.cs
- ObjectTypeMapping.cs
- KeyFrames.cs
- SearchForVirtualItemEventArgs.cs
- AstNode.cs
- Misc.cs
- DataGridToolTip.cs
- XMLUtil.cs
- WmpBitmapEncoder.cs
- ImageCodecInfo.cs
- CrossSiteScriptingValidation.cs
- x509utils.cs
- UserPersonalizationStateInfo.cs
- XmlChildEnumerator.cs
- SqlStream.cs
- GlobalizationAssembly.cs
- DocobjHost.cs
- CapabilitiesAssignment.cs
- FunctionDescription.cs
- DebugView.cs
- VarRefManager.cs
- OrderedHashRepartitionStream.cs
- base64Transforms.cs
- PropertyBuilder.cs
- Color.cs
- EventEntry.cs
- RSAPKCS1KeyExchangeFormatter.cs
- XmlnsDictionary.cs
- SchemaTypeEmitter.cs
- SignHashRequest.cs
- HtmlCalendarAdapter.cs
- NavigateEvent.cs
- ProfessionalColorTable.cs
- SyndicationCategory.cs
- StaticFileHandler.cs
- ContextMenuStrip.cs
- BamlVersionHeader.cs
- HideDisabledControlAdapter.cs
- BoundsDrawingContextWalker.cs
- Triplet.cs
- VirtualPath.cs
- DrawingImage.cs
- XPathNodeList.cs
- Context.cs
- EntityUtil.cs
- WeakHashtable.cs
- BamlReader.cs
- RelationshipDetailsCollection.cs
- ScriptRegistrationManager.cs
- CombinedGeometry.cs
- ResourcePart.cs
- VisemeEventArgs.cs
- ButtonChrome.cs
- SynchronizingStream.cs
- TypeInitializationException.cs
- PeerUnsafeNativeCryptMethods.cs
- CreateUserWizardStep.cs
- WizardPanelChangingEventArgs.cs
- TextServicesContext.cs
- X500Name.cs
- EntityTemplateUserControl.cs
- WebPartConnectionsCloseVerb.cs
- ParseNumbers.cs
- DynamicRenderer.cs
- HybridWebProxyFinder.cs
- EmptyStringExpandableObjectConverter.cs
- Timer.cs
- TableItemStyle.cs
- MemoryStream.cs
- HttpApplication.cs
- PrimitiveDataContract.cs
- UndoUnit.cs
- FastPropertyAccessor.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- CodeArgumentReferenceExpression.cs
- AnchoredBlock.cs
- XNodeNavigator.cs
- CapacityStreamGeometryContext.cs
- DesignerForm.cs