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
- DbProviderFactory.cs
- ColumnHeaderConverter.cs
- unsafenativemethodsother.cs
- WebWorkflowRole.cs
- NgenServicingAttributes.cs
- _FtpDataStream.cs
- HostSecurityManager.cs
- ResourceDisplayNameAttribute.cs
- ContentPresenter.cs
- XmlDocumentFragment.cs
- NamespaceEmitter.cs
- EncodingTable.cs
- MessageBox.cs
- Metadata.cs
- SubMenuStyleCollectionEditor.cs
- DocumentPage.cs
- ThreadNeutralSemaphore.cs
- CrossAppDomainChannel.cs
- SimpleHandlerFactory.cs
- FragmentQueryProcessor.cs
- FunctionImportElement.cs
- TextSelectionHelper.cs
- PrintingPermissionAttribute.cs
- ImmutableObjectAttribute.cs
- WebReferencesBuildProvider.cs
- ErrorFormatter.cs
- ConfigXmlReader.cs
- StrongNameHelpers.cs
- MediaElementAutomationPeer.cs
- DBBindings.cs
- RetriableClipboard.cs
- UnsafeNativeMethodsCLR.cs
- TableLayoutStyle.cs
- Rotation3DKeyFrameCollection.cs
- RowsCopiedEventArgs.cs
- SHA1Managed.cs
- TemplatedWizardStep.cs
- CompoundFileDeflateTransform.cs
- LookupTables.cs
- BuildProvider.cs
- WsdlImporterElement.cs
- Shape.cs
- ObjectListSelectEventArgs.cs
- URLBuilder.cs
- Globals.cs
- XmlArrayItemAttribute.cs
- HwndKeyboardInputProvider.cs
- XmlSchemaAnnotation.cs
- GridViewAutomationPeer.cs
- RuntimeResourceSet.cs
- TabControl.cs
- Pen.cs
- SiteMapProvider.cs
- TableLayoutSettingsTypeConverter.cs
- PageContentAsyncResult.cs
- HierarchicalDataTemplate.cs
- SqlTransaction.cs
- ListControlConvertEventArgs.cs
- D3DImage.cs
- CounterCreationData.cs
- LazyTextWriterCreator.cs
- CharStorage.cs
- SelectionRange.cs
- SQLGuid.cs
- EdmSchemaError.cs
- SelectedGridItemChangedEvent.cs
- BitHelper.cs
- CodeGenerator.cs
- DoubleAnimationClockResource.cs
- WsrmTraceRecord.cs
- Expression.cs
- ScriptControlManager.cs
- RepeatBehaviorConverter.cs
- CaseStatementSlot.cs
- DefaultPropertyAttribute.cs
- designeractionlistschangedeventargs.cs
- ToolStripComboBox.cs
- Serializer.cs
- DiagnosticStrings.cs
- Bezier.cs
- WebPartCancelEventArgs.cs
- ObjectParameter.cs
- _SslState.cs
- CodeTypeReferenceCollection.cs
- TextRunCache.cs
- XPathException.cs
- WindowVisualStateTracker.cs
- CompositeControl.cs
- VarInfo.cs
- OrderByBuilder.cs
- ImageListStreamer.cs
- SignerInfo.cs
- MasterPage.cs
- XPathChildIterator.cs
- ExceptionValidationRule.cs
- InvalidFilterCriteriaException.cs
- sqlpipe.cs
- MessageHeaderDescriptionCollection.cs
- NamespaceDecl.cs
- WebPartConnectionsEventArgs.cs