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
- CDSsyncETWBCLProvider.cs
- TCEAdapterGenerator.cs
- TableCell.cs
- DataColumn.cs
- EntityModelBuildProvider.cs
- HtmlEmptyTagControlBuilder.cs
- ProcessModelInfo.cs
- CompModHelpers.cs
- ArrayWithOffset.cs
- SrgsItemList.cs
- PreviewPrintController.cs
- CSharpCodeProvider.cs
- SmtpAuthenticationManager.cs
- SoapObjectReader.cs
- MsmqProcessProtocolHandler.cs
- AsyncStreamReader.cs
- PointCollection.cs
- HashMembershipCondition.cs
- GeneralTransformGroup.cs
- SecureStringHasher.cs
- AdjustableArrowCap.cs
- FontFaceLayoutInfo.cs
- LogReserveAndAppendState.cs
- InputElement.cs
- FixedBufferAttribute.cs
- Rotation3DAnimationBase.cs
- SessionStateItemCollection.cs
- WhitespaceReader.cs
- FixedSOMSemanticBox.cs
- DaylightTime.cs
- ComplexBindingPropertiesAttribute.cs
- DesignTimeTemplateParser.cs
- PublisherMembershipCondition.cs
- DesignerVerbToolStripMenuItem.cs
- BaseEntityWrapper.cs
- MonthCalendar.cs
- Transform3D.cs
- DateTimeOffsetConverter.cs
- TextTreeInsertUndoUnit.cs
- RadioButtonStandardAdapter.cs
- WindowsFormsSynchronizationContext.cs
- ChangePassword.cs
- MimeTypePropertyAttribute.cs
- IPPacketInformation.cs
- Parser.cs
- EntityType.cs
- CollectionChangeEventArgs.cs
- ParserExtension.cs
- OdbcConnectionPoolProviderInfo.cs
- ParenthesizePropertyNameAttribute.cs
- TablePattern.cs
- SQLByte.cs
- SQLGuidStorage.cs
- MarkupObject.cs
- ByteStream.cs
- DesignTimeHTMLTextWriter.cs
- SynchronizationHandlesCodeDomSerializer.cs
- DataObjectPastingEventArgs.cs
- FieldNameLookup.cs
- HandleExceptionArgs.cs
- ViewGenerator.cs
- ProviderUtil.cs
- HeaderedContentControl.cs
- EntityParameterCollection.cs
- SecureStringHasher.cs
- SQLBinaryStorage.cs
- ConfigXmlComment.cs
- XD.cs
- GradientStopCollection.cs
- _NetRes.cs
- DataPagerFieldItem.cs
- SQLCharsStorage.cs
- FontUnit.cs
- LogSwitch.cs
- WebScriptServiceHostFactory.cs
- PeerApplicationLaunchInfo.cs
- ToolTipAutomationPeer.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- IDReferencePropertyAttribute.cs
- StringWriter.cs
- OdbcDataAdapter.cs
- COM2ExtendedBrowsingHandler.cs
- MulticastDelegate.cs
- DrawTreeNodeEventArgs.cs
- BamlLocalizationDictionary.cs
- QuaternionRotation3D.cs
- DesignerDataSchemaClass.cs
- Int16AnimationBase.cs
- ReadOnlyCollectionBase.cs
- TypeConverterHelper.cs
- Hex.cs
- ScriptingProfileServiceSection.cs
- CancelEventArgs.cs
- Matrix3D.cs
- ExpressionBindings.cs
- SafeFileMappingHandle.cs
- XmlToDatasetMap.cs
- CharacterShapingProperties.cs
- ButtonColumn.cs
- SQLInt64.cs