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
- Query.cs
- ContentFilePart.cs
- Validator.cs
- OutputScope.cs
- TreeViewItem.cs
- TextTreeTextBlock.cs
- ScriptHandlerFactory.cs
- DocumentGridPage.cs
- ISAPIApplicationHost.cs
- querybuilder.cs
- Int32KeyFrameCollection.cs
- DataGridViewImageColumn.cs
- HttpResponseMessageProperty.cs
- Perspective.cs
- NativeStructs.cs
- ColorTransform.cs
- AlphaSortedEnumConverter.cs
- hwndwrapper.cs
- SiteMapProvider.cs
- HotSpotCollection.cs
- DBCommandBuilder.cs
- isolationinterop.cs
- StorageComplexTypeMapping.cs
- IRCollection.cs
- TypeSystemProvider.cs
- KeyboardEventArgs.cs
- ResourceContainer.cs
- sitestring.cs
- RemoteHelper.cs
- ColumnBinding.cs
- EditorBrowsableAttribute.cs
- TextSpanModifier.cs
- Calendar.cs
- FileUpload.cs
- DbConnectionStringCommon.cs
- CollectionViewGroupRoot.cs
- BufferedMessageData.cs
- TypeConverterAttribute.cs
- ColumnCollection.cs
- Parser.cs
- XmlNode.cs
- CqlBlock.cs
- TextBoxBase.cs
- BaseCollection.cs
- GreenMethods.cs
- DoubleAnimationClockResource.cs
- GradientPanel.cs
- RegexRunner.cs
- Encoding.cs
- XPathAxisIterator.cs
- ParentControlDesigner.cs
- XD.cs
- DiscoveryClientChannelFactory.cs
- WindowsTooltip.cs
- PrtCap_Public.cs
- ServicePoint.cs
- CreateWorkflowOwnerCommand.cs
- PeerHopCountAttribute.cs
- ToolStripSystemRenderer.cs
- UnmanagedBitmapWrapper.cs
- ServiceParser.cs
- AppModelKnownContentFactory.cs
- TextUtf8RawTextWriter.cs
- HostProtectionException.cs
- WebPartsPersonalizationAuthorization.cs
- UriParserTemplates.cs
- VisualState.cs
- Group.cs
- _NestedMultipleAsyncResult.cs
- ContentPlaceHolder.cs
- CompoundFileIOPermission.cs
- TouchesOverProperty.cs
- WebPartsSection.cs
- ExclusiveTcpTransportManager.cs
- XPathSingletonIterator.cs
- ActivityUtilities.cs
- XmlSerializationReader.cs
- AuthenticatingEventArgs.cs
- XmlMembersMapping.cs
- BaseCodeDomTreeGenerator.cs
- PartialCachingAttribute.cs
- ClientData.cs
- CustomMenuItemCollection.cs
- XmlParserContext.cs
- CounterSample.cs
- WmpBitmapDecoder.cs
- MenuItem.cs
- tooltip.cs
- TimeEnumHelper.cs
- ToolStripMenuItemCodeDomSerializer.cs
- CookieParameter.cs
- CompilationSection.cs
- MetabaseServerConfig.cs
- SessionStateItemCollection.cs
- EventLogTraceListener.cs
- TypeBuilderInstantiation.cs
- XmlCharType.cs
- ScrollableControl.cs
- WebPartEditorCancelVerb.cs
- Thumb.cs