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
- FontUnit.cs
- HttpListenerException.cs
- WindowsToolbarAsMenu.cs
- Parser.cs
- CharacterBufferReference.cs
- MarkupProperty.cs
- precedingsibling.cs
- LongPath.cs
- PropertyStore.cs
- DoubleLink.cs
- SmtpNtlmAuthenticationModule.cs
- TabRenderer.cs
- ActivationArguments.cs
- SqlUnionizer.cs
- ColorBlend.cs
- PrintControllerWithStatusDialog.cs
- SslStreamSecurityElement.cs
- PageHandlerFactory.cs
- MembershipSection.cs
- SpellerError.cs
- XmlArrayItemAttribute.cs
- SymbolEqualComparer.cs
- XmlFileEditor.cs
- SetStoryboardSpeedRatio.cs
- LiteralControl.cs
- MultiAsyncResult.cs
- Atom10FormatterFactory.cs
- PointHitTestResult.cs
- IndependentlyAnimatedPropertyMetadata.cs
- ParallelTimeline.cs
- MenuItemBinding.cs
- ExtractCollection.cs
- ComponentDispatcher.cs
- WebPartDisplayModeCollection.cs
- SQLInt64Storage.cs
- ToolStripDropDownClosingEventArgs.cs
- HttpModuleAction.cs
- DesignerCalendarAdapter.cs
- FrameworkPropertyMetadata.cs
- UrlPath.cs
- MetafileHeaderWmf.cs
- DbParameterHelper.cs
- StorageFunctionMapping.cs
- GridViewColumnHeaderAutomationPeer.cs
- messageonlyhwndwrapper.cs
- CrossContextChannel.cs
- CheckedListBox.cs
- FloaterBaseParaClient.cs
- _NegoStream.cs
- GZipStream.cs
- CellParagraph.cs
- StringFreezingAttribute.cs
- BeginStoryboard.cs
- GuidelineCollection.cs
- MULTI_QI.cs
- NavigationCommands.cs
- CloseCryptoHandleRequest.cs
- NavigationEventArgs.cs
- PingOptions.cs
- SAPIEngineTypes.cs
- ClientApiGenerator.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- SemaphoreFullException.cs
- XPathChildIterator.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- RootProfilePropertySettingsCollection.cs
- DurableInstanceContextProvider.cs
- XmlQueryStaticData.cs
- TagNameToTypeMapper.cs
- SmiSettersStream.cs
- SecurityDocument.cs
- Compilation.cs
- PropertyChangingEventArgs.cs
- MemoryPressure.cs
- XmlSchemaObjectCollection.cs
- MSAANativeProvider.cs
- SerializerWriterEventHandlers.cs
- grammarelement.cs
- WebPartMovingEventArgs.cs
- XmlRootAttribute.cs
- PeerNearMe.cs
- DataGridViewTextBoxCell.cs
- SerTrace.cs
- ConfigXmlComment.cs
- util.cs
- ScriptResourceDefinition.cs
- ResourceIDHelper.cs
- FontCacheUtil.cs
- WorkflowService.cs
- XmlDownloadManager.cs
- DataGridViewCellMouseEventArgs.cs
- Matrix3DConverter.cs
- HitTestFilterBehavior.cs
- loginstatus.cs
- ListSortDescriptionCollection.cs
- TimersDescriptionAttribute.cs
- WorkflowInstanceExtensionCollection.cs
- AuthenticatingEventArgs.cs
- ContextMarshalException.cs
- CalendarButton.cs