Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- ContractSearchPattern.cs
- Rectangle.cs
- SqlXml.cs
- TreeViewCancelEvent.cs
- RangeBaseAutomationPeer.cs
- PagedDataSource.cs
- HostingMessageProperty.cs
- ReceiveCompletedEventArgs.cs
- LayoutUtils.cs
- XPathNavigatorReader.cs
- MappedMetaModel.cs
- TabRenderer.cs
- DataPagerFieldCollection.cs
- UserNamePasswordValidator.cs
- DigestComparer.cs
- XMLSchema.cs
- ConnectivityStatus.cs
- DataTemplateKey.cs
- HostingPreferredMapPath.cs
- BaseResourcesBuildProvider.cs
- _Semaphore.cs
- LineBreakRecord.cs
- metadatamappinghashervisitor.cs
- Vector3DCollectionConverter.cs
- HotSpotCollection.cs
- DiffuseMaterial.cs
- XmlDataSource.cs
- MsmqBindingMonitor.cs
- XmlWrappingReader.cs
- TextServicesPropertyRanges.cs
- IntersectQueryOperator.cs
- EntityModelSchemaGenerator.cs
- ReflectPropertyDescriptor.cs
- HostProtectionException.cs
- Column.cs
- _ServiceNameStore.cs
- StylusPointProperty.cs
- ManualResetEvent.cs
- EditingMode.cs
- ListView.cs
- InstanceHandle.cs
- TypeDependencyAttribute.cs
- StorageInfo.cs
- CalculatedColumn.cs
- DeadCharTextComposition.cs
- TextElement.cs
- ExpressionWriter.cs
- TraceContextEventArgs.cs
- TemplatedControlDesigner.cs
- FileLoadException.cs
- RewritingPass.cs
- SymLanguageType.cs
- XmlILModule.cs
- HMACMD5.cs
- ScrollContentPresenter.cs
- EntityClientCacheEntry.cs
- XamlToRtfWriter.cs
- XmlSchemaSequence.cs
- OSFeature.cs
- TraceSwitch.cs
- _OverlappedAsyncResult.cs
- ContractTypeNameElement.cs
- DigitShape.cs
- WindowsGraphicsWrapper.cs
- EventArgs.cs
- Script.cs
- SoapSchemaImporter.cs
- OutputCacheProfile.cs
- ListItemViewAttribute.cs
- XmlReturnReader.cs
- ParseChildrenAsPropertiesAttribute.cs
- ExceptionUtil.cs
- AuthorizationRuleCollection.cs
- NamedElement.cs
- ServiceOperation.cs
- QueryStringParameter.cs
- DataTable.cs
- TiffBitmapDecoder.cs
- GridView.cs
- NativeRecognizer.cs
- RuntimeResourceSet.cs
- ServiceControllerDesigner.cs
- Validator.cs
- OdbcEnvironment.cs
- EventPropertyMap.cs
- RuntimeHandles.cs
- ServerTooBusyException.cs
- SubqueryRules.cs
- WebPartManager.cs
- BookmarkScopeHandle.cs
- MailMessageEventArgs.cs
- ProtocolsConfigurationEntry.cs
- DuplicateWaitObjectException.cs
- RichTextBoxConstants.cs
- FontCacheLogic.cs
- RemoteCryptoSignHashRequest.cs
- WpfSharedBamlSchemaContext.cs
- Mapping.cs
- Polyline.cs
- ComponentCollection.cs