Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- InputScopeNameConverter.cs
- XmlQuerySequence.cs
- cryptoapiTransform.cs
- AssociationTypeEmitter.cs
- ScrollChrome.cs
- NotifyIcon.cs
- FileSystemEventArgs.cs
- SymbolPair.cs
- XmlCDATASection.cs
- LayoutDump.cs
- ExpressionBuilder.cs
- Frame.cs
- XPathDocumentIterator.cs
- Stroke.cs
- ipaddressinformationcollection.cs
- controlskin.cs
- StringSorter.cs
- MethodImplAttribute.cs
- CompModSwitches.cs
- StaticExtension.cs
- RemoteWebConfigurationHost.cs
- _BasicClient.cs
- CharacterMetrics.cs
- XmlSignificantWhitespace.cs
- GridSplitter.cs
- XsdBuilder.cs
- InternalConfigSettingsFactory.cs
- XmlTextReaderImpl.cs
- StrokeSerializer.cs
- AssemblyInfo.cs
- NegotiationTokenAuthenticator.cs
- Metadata.cs
- BinaryFormatterWriter.cs
- InvalidProgramException.cs
- EditorZoneBase.cs
- RepeatInfo.cs
- SqlCacheDependencyDatabase.cs
- PointConverter.cs
- SingleObjectCollection.cs
- CatalogPartChrome.cs
- MetadataUtilsSmi.cs
- UrlPath.cs
- ToolBarButtonClickEvent.cs
- InvokeMethod.cs
- Internal.cs
- followingquery.cs
- NumberFormatter.cs
- ComponentEditorForm.cs
- MediaPlayer.cs
- Scanner.cs
- StreamInfo.cs
- DesignerProperties.cs
- FirstMatchCodeGroup.cs
- QueueTransferProtocol.cs
- ManifestSignedXml.cs
- IUnknownConstantAttribute.cs
- _NegoStream.cs
- WebPartHeaderCloseVerb.cs
- CounterCreationDataCollection.cs
- DSASignatureFormatter.cs
- ServiceModelConfigurationElementCollection.cs
- DocumentApplicationJournalEntry.cs
- HttpHandlerAction.cs
- HttpProfileGroupBase.cs
- SqlTypeSystemProvider.cs
- BuildProvider.cs
- Utils.cs
- FamilyCollection.cs
- DiagnosticSection.cs
- HWStack.cs
- TimeSpanSecondsConverter.cs
- DocumentApplication.cs
- ExternalException.cs
- ArrangedElement.cs
- ChangeInterceptorAttribute.cs
- XmlSchemaProviderAttribute.cs
- UrlAuthorizationModule.cs
- LocalFileSettingsProvider.cs
- Matrix3D.cs
- GeneralTransform.cs
- BindingManagerDataErrorEventArgs.cs
- DropShadowEffect.cs
- TimeSpanMinutesConverter.cs
- xmlglyphRunInfo.cs
- ObjectSet.cs
- XmlNodeComparer.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- RepeatInfo.cs
- NetworkInformationPermission.cs
- FixedStringLookup.cs
- RtfToken.cs
- SmiGettersStream.cs
- WebPartVerbsEventArgs.cs
- CultureTable.cs
- ColumnCollection.cs
- TableLayoutRowStyleCollection.cs
- AxHost.cs
- NullableConverter.cs
- ExtensibleClassFactory.cs
- TemplateControlBuildProvider.cs