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
- SmiRequestExecutor.cs
- DecoderReplacementFallback.cs
- BuildResult.cs
- SmtpSection.cs
- SequenceNumber.cs
- ConsoleKeyInfo.cs
- ThreadAbortException.cs
- GenerateHelper.cs
- TreeWalkHelper.cs
- smtpconnection.cs
- MobileCategoryAttribute.cs
- HtmlMobileTextWriter.cs
- SynchronizationContext.cs
- WizardDesigner.cs
- EdmError.cs
- ResolvedKeyFrameEntry.cs
- SelfSignedCertificate.cs
- SystemPens.cs
- SingleAnimationUsingKeyFrames.cs
- ClientBuildManager.cs
- SqlFactory.cs
- OrderedParallelQuery.cs
- DocumentDesigner.cs
- StringComparer.cs
- TypeLoadException.cs
- Viewport2DVisual3D.cs
- Attributes.cs
- DescendantOverDescendantQuery.cs
- CompModSwitches.cs
- CheckedListBox.cs
- ObjectItemCollection.cs
- EntityDataSourceState.cs
- ObjectTokenCategory.cs
- KerberosReceiverSecurityToken.cs
- CursorEditor.cs
- ObfuscationAttribute.cs
- MediaPlayerState.cs
- OLEDB_Enum.cs
- Gdiplus.cs
- LayoutUtils.cs
- ZoneLinkButton.cs
- ServicePointManager.cs
- WCFModelStrings.Designer.cs
- XmlResolver.cs
- RawStylusInputCustomData.cs
- ErrorFormatterPage.cs
- QuaternionAnimation.cs
- WindowsScrollBarBits.cs
- Location.cs
- SQLBinary.cs
- SearchExpression.cs
- DiscreteKeyFrames.cs
- ExpanderAutomationPeer.cs
- CodeDelegateCreateExpression.cs
- MarkupCompilePass1.cs
- SiteMapSection.cs
- FacetDescription.cs
- WindowsRebar.cs
- HostElement.cs
- ControlCollection.cs
- DataControlCommands.cs
- XmlCharCheckingReader.cs
- FilterableAttribute.cs
- DBSqlParser.cs
- NameValuePermission.cs
- Stroke2.cs
- PointIndependentAnimationStorage.cs
- EllipseGeometry.cs
- GetKeyedHashRequest.cs
- PersonalizationStateInfo.cs
- AutoCompleteStringCollection.cs
- SafeSecurityHelper.cs
- XpsFontSubsetter.cs
- columnmapkeybuilder.cs
- WebBrowserBase.cs
- TimelineGroup.cs
- HtmlImage.cs
- TaskFormBase.cs
- _NestedSingleAsyncResult.cs
- IPAddressCollection.cs
- TokenCreationParameter.cs
- PriorityQueue.cs
- PropertyHelper.cs
- DiscreteKeyFrames.cs
- HostExecutionContextManager.cs
- User.cs
- DetailsViewPagerRow.cs
- TextTrailingCharacterEllipsis.cs
- QueryCacheKey.cs
- SharedUtils.cs
- ImageSource.cs
- AccessDataSource.cs
- GPStream.cs
- MachineKeyConverter.cs
- XmlSchemaElement.cs
- AttachedProperty.cs
- TemplateKey.cs
- RangeValuePatternIdentifiers.cs
- Point3D.cs
- ConstraintManager.cs