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
- Types.cs
- RowsCopiedEventArgs.cs
- SerializationInfo.cs
- MailMessage.cs
- MergeFilterQuery.cs
- PublisherIdentityPermission.cs
- PageBreakRecord.cs
- OdbcParameter.cs
- RolePrincipal.cs
- Size.cs
- MexHttpsBindingCollectionElement.cs
- BitmapEffectGroup.cs
- DocumentPaginator.cs
- TaskCanceledException.cs
- ClassicBorderDecorator.cs
- UserPreferenceChangedEventArgs.cs
- XmlSchemaInfo.cs
- Point3DCollection.cs
- PagesChangedEventArgs.cs
- ConnectionPoint.cs
- SQlBooleanStorage.cs
- ReceiveActivity.cs
- PolyBezierSegment.cs
- DataControlPagerLinkButton.cs
- LocationUpdates.cs
- CompilerLocalReference.cs
- InvokeWebService.cs
- ProcessHostConfigUtils.cs
- ZipIOLocalFileDataDescriptor.cs
- ValidationHelper.cs
- CachedPathData.cs
- Missing.cs
- TextTreeExtractElementUndoUnit.cs
- Zone.cs
- WebPartExportVerb.cs
- SqlUserDefinedTypeAttribute.cs
- Polygon.cs
- DescendantQuery.cs
- RawStylusSystemGestureInputReport.cs
- SqlConnectionHelper.cs
- SingleObjectCollection.cs
- CanExecuteRoutedEventArgs.cs
- WebServiceHandlerFactory.cs
- InvokeProviderWrapper.cs
- ReadOnlyDataSource.cs
- MimeWriter.cs
- Variant.cs
- XmlMemberMapping.cs
- VariantWrapper.cs
- MsmqSecureHashAlgorithm.cs
- Int32RectValueSerializer.cs
- EditingCommands.cs
- ArrayList.cs
- WinEventQueueItem.cs
- SyndicationElementExtensionCollection.cs
- GlyphingCache.cs
- TreeNodeMouseHoverEvent.cs
- UITypeEditor.cs
- FieldAccessException.cs
- PropertyIDSet.cs
- IssuanceLicense.cs
- HttpListenerPrefixCollection.cs
- ToolStripProgressBar.cs
- XmlLoader.cs
- PersonalizationStateQuery.cs
- ByteViewer.cs
- PropertyAccessVisitor.cs
- InheritanceRules.cs
- FieldNameLookup.cs
- ItemCheckEvent.cs
- ServiceCredentialsElement.cs
- EncoderFallback.cs
- ToolbarAUtomationPeer.cs
- TypeUnloadedException.cs
- OracleFactory.cs
- PartitionerStatic.cs
- BoundsDrawingContextWalker.cs
- ListViewPagedDataSource.cs
- CharKeyFrameCollection.cs
- PopOutPanel.cs
- BulletChrome.cs
- SoapElementAttribute.cs
- CodeStatement.cs
- LinkButton.cs
- RectAnimationClockResource.cs
- HttpCacheParams.cs
- XamlSerializer.cs
- BindUriHelper.cs
- Rijndael.cs
- Grid.cs
- PointCollectionConverter.cs
- DesignerCapabilities.cs
- ClientFormsIdentity.cs
- TypeSystemProvider.cs
- Compilation.cs
- WorkflowItemPresenter.cs
- ExtensionWindowHeader.cs
- RemoteWebConfigurationHostServer.cs
- ItemCheckEvent.cs
- WindowsGrip.cs