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
- SoapCommonClasses.cs
- IISUnsafeMethods.cs
- Font.cs
- ResourceReferenceKeyNotFoundException.cs
- RootBuilder.cs
- RecommendedAsConfigurableAttribute.cs
- ECDiffieHellmanCng.cs
- DBConnectionString.cs
- PolyBezierSegment.cs
- MatchAttribute.cs
- CreateDataSourceDialog.cs
- EntityDataSourceWizardForm.cs
- TypeName.cs
- LongValidator.cs
- ActivityWithResultValueSerializer.cs
- NavigationExpr.cs
- Crypto.cs
- GeometryModel3D.cs
- OdbcRowUpdatingEvent.cs
- TokenBasedSet.cs
- AttributeConverter.cs
- AccessDataSourceView.cs
- EncodingInfo.cs
- FileDialog_Vista_Interop.cs
- CodeTypeReferenceExpression.cs
- CompilationSection.cs
- CodeSubDirectoriesCollection.cs
- XsdValidatingReader.cs
- ConstraintStruct.cs
- AVElementHelper.cs
- OdbcEnvironment.cs
- SecurityUniqueId.cs
- FamilyMap.cs
- DebuggerService.cs
- StringUtil.cs
- ExtensibleClassFactory.cs
- RNGCryptoServiceProvider.cs
- SafeNativeMethods.cs
- MatchAllMessageFilter.cs
- WebPartMinimizeVerb.cs
- InvalidWMPVersionException.cs
- WindowsScrollBarBits.cs
- xdrvalidator.cs
- HandlerWithFactory.cs
- BitmapScalingModeValidation.cs
- OptionalMessageQuery.cs
- DateTimePicker.cs
- DataGridViewCheckBoxCell.cs
- SystemWebSectionGroup.cs
- SmtpNtlmAuthenticationModule.cs
- OutOfMemoryException.cs
- TextWriter.cs
- DataListItemCollection.cs
- SafeBitVector32.cs
- DataGridViewBand.cs
- ConfigurationProperty.cs
- DrawingAttributeSerializer.cs
- CookieParameter.cs
- XmlSchemaInfo.cs
- SoapInteropTypes.cs
- _FtpControlStream.cs
- BitmapDownload.cs
- DeferredSelectedIndexReference.cs
- BinaryReader.cs
- ZipIOExtraFieldElement.cs
- IDReferencePropertyAttribute.cs
- CachedPathData.cs
- NavigationCommands.cs
- TrustSection.cs
- NonVisualControlAttribute.cs
- MemberAccessException.cs
- DesignerForm.cs
- SqlOuterApplyReducer.cs
- StaticSiteMapProvider.cs
- BooleanConverter.cs
- CompositeControl.cs
- DrawListViewSubItemEventArgs.cs
- SQLResource.cs
- TraceContextEventArgs.cs
- CapabilitiesPattern.cs
- DatePickerAutomationPeer.cs
- CachedPathData.cs
- IISUnsafeMethods.cs
- PermissionSetTriple.cs
- MdiWindowListStrip.cs
- AsymmetricSignatureFormatter.cs
- WorkflowClientDeliverMessageWrapper.cs
- ZipIOLocalFileHeader.cs
- GridViewEditEventArgs.cs
- TextTreePropertyUndoUnit.cs
- TCPClient.cs
- AspCompat.cs
- ConfigurationErrorsException.cs
- CacheModeConverter.cs
- ConnectionPoint.cs
- WebHttpSecurityElement.cs
- Matrix.cs
- FileUtil.cs
- WebPartDisplayModeEventArgs.cs
- ObjectStateEntryDbUpdatableDataRecord.cs