Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Data / PriorityBinding.cs / 1305600 / 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); } internal override BindingBase CreateClone() { return new PriorityBinding(); } internal override void InitializeClone(BindingBase baseClone, BindingMode mode) { PriorityBinding clone = (PriorityBinding)baseClone; for (int i=0; i<=_bindingCollection.Count; ++i) { clone._bindingCollection.Add(_bindingCollection[i].Clone(mode)); } base.InitializeClone(baseClone, mode); } 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
- BitmapData.cs
- PackagePart.cs
- HMACSHA256.cs
- XmlSchemaObject.cs
- DataGridTextBox.cs
- IPGlobalProperties.cs
- GiveFeedbackEvent.cs
- ArgumentOutOfRangeException.cs
- FrameworkContextData.cs
- RadioButtonStandardAdapter.cs
- AdPostCacheSubstitution.cs
- ProviderIncompatibleException.cs
- ResourceDescriptionAttribute.cs
- ExpressionConverter.cs
- Ops.cs
- FileLogRecordHeader.cs
- ClientBuildManager.cs
- GroupPartitionExpr.cs
- ObjectListItemCollection.cs
- CatalogZone.cs
- MatrixAnimationUsingKeyFrames.cs
- XmlSerializer.cs
- FixedSOMElement.cs
- HashCodeCombiner.cs
- MemberBinding.cs
- DataMemberAttribute.cs
- AnnouncementService.cs
- XmlSortKeyAccumulator.cs
- NotifyParentPropertyAttribute.cs
- Stack.cs
- WebFaultException.cs
- ViewBase.cs
- DesignerRegionMouseEventArgs.cs
- UIElementParagraph.cs
- ClusterRegistryConfigurationProvider.cs
- BookmarkEventArgs.cs
- StatusBar.cs
- ResourcePool.cs
- JapaneseLunisolarCalendar.cs
- Italic.cs
- DataGridState.cs
- RegistryKey.cs
- PropertyBuilder.cs
- DataGridViewAccessibleObject.cs
- IdentifierCreationService.cs
- TraceInternal.cs
- FixedStringLookup.cs
- TimersDescriptionAttribute.cs
- Menu.cs
- PageContent.cs
- UriParserTemplates.cs
- SqlUtils.cs
- DependencyPropertyValueSerializer.cs
- SocketPermission.cs
- VarRemapper.cs
- EditorPart.cs
- XmlElementCollection.cs
- CodeMethodInvokeExpression.cs
- WebPartZoneBase.cs
- XamlWrapperReaders.cs
- TitleStyle.cs
- WebPartsPersonalization.cs
- CodeThrowExceptionStatement.cs
- RecordConverter.cs
- ExceptionUtility.cs
- CodeNamespace.cs
- SoapAttributeAttribute.cs
- DetailsViewRowCollection.cs
- BuilderPropertyEntry.cs
- Visitors.cs
- StorageModelBuildProvider.cs
- NetCodeGroup.cs
- DataSourceSelectArguments.cs
- StringPropertyBuilder.cs
- StateFinalizationDesigner.cs
- TableDesigner.cs
- GridErrorDlg.cs
- SettingsAttributes.cs
- DESCryptoServiceProvider.cs
- TextAutomationPeer.cs
- RoleGroupCollection.cs
- EdmEntityTypeAttribute.cs
- DropTarget.cs
- PreviewPrintController.cs
- StopStoryboard.cs
- ImageFormatConverter.cs
- FontStyleConverter.cs
- TemplateControl.cs
- XPathNodeInfoAtom.cs
- FixedSOMTableRow.cs
- HttpListener.cs
- ValidatingReaderNodeData.cs
- WebContentFormatHelper.cs
- TextElementCollection.cs
- FileChangesMonitor.cs
- QilFunction.cs
- HtmlButton.cs
- SelectedGridItemChangedEvent.cs
- EditableLabelControl.cs
- WorkerRequest.cs