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
- ReadOnlyDataSource.cs
- ExpressionBindings.cs
- WeakRefEnumerator.cs
- XmlSchemaChoice.cs
- XmlSchemaAttribute.cs
- httpserverutility.cs
- ArraySubsetEnumerator.cs
- DateTimeConverter.cs
- FileEnumerator.cs
- RolePrincipal.cs
- CachingHintValidation.cs
- HMACSHA256.cs
- PageVisual.cs
- SelectionProviderWrapper.cs
- WebPartDesigner.cs
- CngKeyBlobFormat.cs
- AutomationPattern.cs
- CipherData.cs
- BitmapEffectGeneralTransform.cs
- IConvertible.cs
- FreezableCollection.cs
- ColumnMapTranslator.cs
- InvokeMethodActivity.cs
- DecoderFallbackWithFailureFlag.cs
- PassportPrincipal.cs
- FontUnit.cs
- Misc.cs
- QilValidationVisitor.cs
- FixedDSBuilder.cs
- IsolatedStorageFilePermission.cs
- TextCompositionEventArgs.cs
- AbsoluteQuery.cs
- TablePatternIdentifiers.cs
- CancelAsyncOperationRequest.cs
- _ChunkParse.cs
- TraceData.cs
- DataBinding.cs
- DataSourceGroupCollection.cs
- Content.cs
- SelectorItemAutomationPeer.cs
- HitTestWithPointDrawingContextWalker.cs
- MonikerBuilder.cs
- SimpleTextLine.cs
- ChooseAction.cs
- LoadedOrUnloadedOperation.cs
- WindowsAuthenticationEventArgs.cs
- Utilities.cs
- ToolStripDropDownButton.cs
- AuthorizationSection.cs
- AttachedAnnotation.cs
- TextTreeTextElementNode.cs
- DefaultAuthorizationContext.cs
- FixedSOMPageElement.cs
- OleServicesContext.cs
- FixedPageAutomationPeer.cs
- _ChunkParse.cs
- SafeMarshalContext.cs
- ToolStripPanel.cs
- Image.cs
- ContainerAction.cs
- CurrencyWrapper.cs
- FormatControl.cs
- FixUpCollection.cs
- ISAPIRuntime.cs
- Selection.cs
- InternalDispatchObject.cs
- DataReaderContainer.cs
- Vector3D.cs
- PolygonHotSpot.cs
- FormParameter.cs
- FontFaceLayoutInfo.cs
- ParallelTimeline.cs
- Authorization.cs
- Activator.cs
- AssociationSetEnd.cs
- DataSourceHelper.cs
- AnonymousIdentificationSection.cs
- MediaTimeline.cs
- WindowsFormsSectionHandler.cs
- FileDialog.cs
- StaticFileHandler.cs
- SQlBooleanStorage.cs
- GridViewUpdatedEventArgs.cs
- SelectedGridItemChangedEvent.cs
- SendMessageRecord.cs
- SplitterEvent.cs
- FrameDimension.cs
- WebMessageFormatHelper.cs
- ThemeableAttribute.cs
- TypeDescriptionProvider.cs
- ValueExpressions.cs
- ContactManager.cs
- SynchronizingStream.cs
- TransportDefaults.cs
- EventMappingSettings.cs
- BaseCodePageEncoding.cs
- Processor.cs
- Material.cs
- DictionaryMarkupSerializer.cs
- SqlSupersetValidator.cs