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
- SystemUdpStatistics.cs
- ParallelTimeline.cs
- TextRangeBase.cs
- MouseOverProperty.cs
- AutomationPropertyInfo.cs
- ViewUtilities.cs
- TransformedBitmap.cs
- DefaultBindingPropertyAttribute.cs
- ActivityFunc.cs
- HwndAppCommandInputProvider.cs
- DuplicateWaitObjectException.cs
- SmiConnection.cs
- SerializationException.cs
- UrlMappingCollection.cs
- SafeProcessHandle.cs
- RadialGradientBrush.cs
- XmlHelper.cs
- CopyNamespacesAction.cs
- XmlAttributeOverrides.cs
- SessionStateModule.cs
- ImageFormat.cs
- DataListItem.cs
- XmlSerializerFactory.cs
- BitmapFrame.cs
- FlagsAttribute.cs
- EventMappingSettingsCollection.cs
- CachedPathData.cs
- QilTypeChecker.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- PackageRelationship.cs
- OleDbPermission.cs
- Unit.cs
- XsltArgumentList.cs
- CssStyleCollection.cs
- Sequence.cs
- InfoCardKeyedHashAlgorithm.cs
- ContextMenuStrip.cs
- SqlVersion.cs
- Switch.cs
- HasCopySemanticsAttribute.cs
- StreamInfo.cs
- RawStylusActions.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- DescendantBaseQuery.cs
- XmlUtil.cs
- ConnectionPoint.cs
- ManifestResourceInfo.cs
- Blend.cs
- GraphicsContainer.cs
- _StreamFramer.cs
- InternalConfirm.cs
- sqlinternaltransaction.cs
- ErasingStroke.cs
- COM2IDispatchConverter.cs
- IPAddress.cs
- DataGridViewButtonColumn.cs
- XamlValidatingReader.cs
- DateTimeParse.cs
- XmlSchemaDocumentation.cs
- MetafileHeader.cs
- CheckBoxFlatAdapter.cs
- ReflectEventDescriptor.cs
- ObjectQueryState.cs
- ProfileGroupSettingsCollection.cs
- UnitySerializationHolder.cs
- WebZoneDesigner.cs
- AdapterUtil.cs
- GroupQuery.cs
- FunctionImportMapping.cs
- XmlSerializerSection.cs
- OutputCacheSettingsSection.cs
- DragStartedEventArgs.cs
- SolidColorBrush.cs
- Transform.cs
- Journal.cs
- StringResourceManager.cs
- SQLInt32.cs
- CqlGenerator.cs
- XmlnsDictionary.cs
- CompilerGlobalScopeAttribute.cs
- TargetControlTypeCache.cs
- SafeEventLogWriteHandle.cs
- ConfigsHelper.cs
- DoubleCollection.cs
- ReversePositionQuery.cs
- FilterRepeater.cs
- RoleManagerSection.cs
- DrawingCollection.cs
- Image.cs
- Mapping.cs
- ListItemParagraph.cs
- HtmlEmptyTagControlBuilder.cs
- CharacterMetrics.cs
- InvalidStoreProtectionKeyException.cs
- DataGridViewDataConnection.cs
- LocatorManager.cs
- DispatchWrapper.cs
- DataGridViewColumn.cs
- HtmlControl.cs
- XmlHierarchicalDataSourceView.cs