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
- CacheModeConverter.cs
- VisualTreeUtils.cs
- OutgoingWebResponseContext.cs
- MemberDescriptor.cs
- DataSetSchema.cs
- XmlSchemaParticle.cs
- AsyncResult.cs
- EllipseGeometry.cs
- ComplexTypeEmitter.cs
- CqlBlock.cs
- Profiler.cs
- XmlValidatingReaderImpl.cs
- CngProvider.cs
- StreamGeometry.cs
- DataGridViewTextBoxColumn.cs
- WebPartDeleteVerb.cs
- SecUtil.cs
- Helpers.cs
- WebPartConnectionsCancelEventArgs.cs
- ISAPIApplicationHost.cs
- TextProviderWrapper.cs
- xmlfixedPageInfo.cs
- RouteUrlExpressionBuilder.cs
- TypeSemantics.cs
- PrimarySelectionAdorner.cs
- DataSourceSelectArguments.cs
- ReceiveCompletedEventArgs.cs
- SortExpressionBuilder.cs
- DurableServiceAttribute.cs
- ScaleTransform.cs
- ActiveXContainer.cs
- BlurEffect.cs
- OracleNumber.cs
- IODescriptionAttribute.cs
- DataGridRowsPresenter.cs
- RoleManagerModule.cs
- MenuStrip.cs
- DataListCommandEventArgs.cs
- SqlConnectionPoolProviderInfo.cs
- WindowsScrollBarBits.cs
- ServiceDescriptions.cs
- DbProviderServices.cs
- MiniModule.cs
- InheritanceRules.cs
- DataControlImageButton.cs
- WebPartZoneBaseDesigner.cs
- OrderByBuilder.cs
- ConfigurationErrorsException.cs
- ListSourceHelper.cs
- StorageFunctionMapping.cs
- EditorPartChrome.cs
- SoapIncludeAttribute.cs
- Transform.cs
- ConfigXmlComment.cs
- DSASignatureFormatter.cs
- ObjectAnimationUsingKeyFrames.cs
- ServiceContractGenerationContext.cs
- BlurEffect.cs
- XmlSchemaSimpleContent.cs
- HttpListenerPrefixCollection.cs
- TagPrefixInfo.cs
- _SingleItemRequestCache.cs
- httpapplicationstate.cs
- DetailsViewModeEventArgs.cs
- LoginCancelEventArgs.cs
- ToolStripItemEventArgs.cs
- AdvancedBindingEditor.cs
- ImageMapEventArgs.cs
- FormsAuthenticationUser.cs
- XPathSelectionIterator.cs
- ListenerServiceInstallComponent.cs
- EdmProviderManifest.cs
- HtmlInputHidden.cs
- DBBindings.cs
- ResourceReader.cs
- ConfigurationValidatorBase.cs
- Process.cs
- validationstate.cs
- EdmMember.cs
- FormCollection.cs
- NotifyInputEventArgs.cs
- DesignerActionPropertyItem.cs
- CheckBox.cs
- TypedReference.cs
- TextBreakpoint.cs
- MethodAccessException.cs
- Tokenizer.cs
- IdentityHolder.cs
- HighContrastHelper.cs
- ClientSection.cs
- SortedList.cs
- AddingNewEventArgs.cs
- ExtenderControl.cs
- SpotLight.cs
- SystemWebExtensionsSectionGroup.cs
- EntityTransaction.cs
- AccessedThroughPropertyAttribute.cs
- XmlElementCollection.cs
- SerializerWriterEventHandlers.cs
- PageClientProxyGenerator.cs