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
- XmlWhitespace.cs
- XmlHelper.cs
- MatrixConverter.cs
- PlaceHolder.cs
- ActionMismatchAddressingException.cs
- CallId.cs
- HostExecutionContextManager.cs
- HtmlInputButton.cs
- ContractMethodParameterInfo.cs
- MemberDescriptor.cs
- SubpageParagraph.cs
- Operator.cs
- WebServiceClientProxyGenerator.cs
- XmlSchemaProviderAttribute.cs
- Marshal.cs
- ErrorLog.cs
- AttachedPropertyDescriptor.cs
- SelectionPattern.cs
- Baml2006SchemaContext.cs
- DataReceivedEventArgs.cs
- WorkflowItemPresenter.cs
- DrawingCollection.cs
- Keyboard.cs
- XmlAttributeProperties.cs
- StrokeNodeOperations2.cs
- FontNamesConverter.cs
- LocatorPart.cs
- CodeIterationStatement.cs
- SecurityException.cs
- DesignBinding.cs
- DataGridViewCellValueEventArgs.cs
- propertytag.cs
- ListMarkerLine.cs
- AnnotationResourceChangedEventArgs.cs
- RuleAction.cs
- KeyNotFoundException.cs
- MouseOverProperty.cs
- UnregisterInfo.cs
- XmlSerializerAssemblyAttribute.cs
- wgx_render.cs
- EntityDataSourceUtil.cs
- CodeNamespaceImport.cs
- PolyLineSegment.cs
- Rules.cs
- StrongNameIdentityPermission.cs
- Visual3DCollection.cs
- PropertyStore.cs
- Stylus.cs
- InstanceCreationEditor.cs
- RotateTransform3D.cs
- XmlCharacterData.cs
- LinkedResourceCollection.cs
- _LazyAsyncResult.cs
- TypedRowGenerator.cs
- AdornerDecorator.cs
- BulletChrome.cs
- PathSegment.cs
- ResXResourceWriter.cs
- SectionUpdates.cs
- CornerRadius.cs
- WinEventTracker.cs
- SubMenuStyleCollection.cs
- InstanceDataCollectionCollection.cs
- RoleGroupCollectionEditor.cs
- WebPartDisplayMode.cs
- PtsHelper.cs
- IDispatchConstantAttribute.cs
- TypeConverterHelper.cs
- DeferredBinaryDeserializerExtension.cs
- CompressEmulationStream.cs
- DbExpressionVisitor.cs
- XmlFormatReaderGenerator.cs
- RepeatInfo.cs
- EntityDataSourceValidationException.cs
- ApplicationManager.cs
- HtmlTable.cs
- SoapExtensionTypeElementCollection.cs
- DetailsViewRowCollection.cs
- WebBrowserHelper.cs
- CatalogZoneAutoFormat.cs
- CacheDependency.cs
- TransportBindingElement.cs
- CompilerCollection.cs
- FlowDocumentPageViewerAutomationPeer.cs
- XhtmlBasicLinkAdapter.cs
- SaveRecipientRequest.cs
- NullRuntimeConfig.cs
- BidOverLoads.cs
- DynamicUpdateCommand.cs
- ProxyAttribute.cs
- WorkflowServiceBehavior.cs
- rsa.cs
- PropertyItemInternal.cs
- CompiledXpathExpr.cs
- WebColorConverter.cs
- WmlValidatorAdapter.cs
- SelectedGridItemChangedEvent.cs
- GraphicsPath.cs
- CompositeControl.cs
- InstanceContext.cs