Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- GridView.cs
- TypeElement.cs
- ToolStripRendererSwitcher.cs
- MethodImplAttribute.cs
- URLString.cs
- FontDriver.cs
- WsdlBuildProvider.cs
- APCustomTypeDescriptor.cs
- ChangeDirector.cs
- ConfigurationCollectionAttribute.cs
- EntityConnection.cs
- Empty.cs
- ColorConverter.cs
- TransformerInfoCollection.cs
- XsltLoader.cs
- TextTreeNode.cs
- WindowsFormsHelpers.cs
- DataGridViewColumnConverter.cs
- PolicyChain.cs
- DecimalStorage.cs
- ParagraphVisual.cs
- BitStream.cs
- Parser.cs
- ProviderMetadata.cs
- ServicePointManagerElement.cs
- CodeGenerator.cs
- CacheEntry.cs
- PrtCap_Public_Simple.cs
- TableFieldsEditor.cs
- TemplateControlCodeDomTreeGenerator.cs
- _SslSessionsCache.cs
- Matrix3D.cs
- DataServiceQueryContinuation.cs
- Profiler.cs
- EventLogPermissionEntry.cs
- ComponentEvent.cs
- SessionState.cs
- WindowsEditBoxRange.cs
- IImplicitResourceProvider.cs
- cryptoapiTransform.cs
- MailWebEventProvider.cs
- ProtectedConfiguration.cs
- Label.cs
- MemberPath.cs
- AuthorizationRule.cs
- ColorInterpolationModeValidation.cs
- HttpCacheVary.cs
- RandomNumberGenerator.cs
- CompositeActivityTypeDescriptor.cs
- BuildProviderUtils.cs
- XmlDomTextWriter.cs
- LazyTextWriterCreator.cs
- XsltInput.cs
- LinkUtilities.cs
- Atom10FormatterFactory.cs
- COM2AboutBoxPropertyDescriptor.cs
- DocumentXmlWriter.cs
- CheckBox.cs
- PagesChangedEventArgs.cs
- BaseCodePageEncoding.cs
- Compensate.cs
- HttpServerVarsCollection.cs
- CollectionCodeDomSerializer.cs
- ByteKeyFrameCollection.cs
- DoubleKeyFrameCollection.cs
- SchemaSetCompiler.cs
- GeometryCollection.cs
- CommandLibraryHelper.cs
- ThreadStaticAttribute.cs
- ReflectionUtil.cs
- DurableInstanceProvider.cs
- SkewTransform.cs
- RuntimeArgumentHandle.cs
- CommandPlan.cs
- ConfigurationManagerHelperFactory.cs
- ObjectListDesigner.cs
- ColorConvertedBitmap.cs
- UpdateException.cs
- PopupEventArgs.cs
- Base64Stream.cs
- ProfileParameter.cs
- TableCell.cs
- DBConnectionString.cs
- IdentitySection.cs
- SoapHeaderException.cs
- TextServicesHost.cs
- FileRecordSequenceHelper.cs
- ObjectIDGenerator.cs
- StreamWithDictionary.cs
- TextServicesContext.cs
- StringReader.cs
- ComNativeDescriptor.cs
- TextContainerHelper.cs
- XmlCompatibilityReader.cs
- Journal.cs
- JsonFormatReaderGenerator.cs
- MissingManifestResourceException.cs
- EventArgs.cs
- BinHexEncoder.cs
- ObjectStateManagerMetadata.cs