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
- ObjectView.cs
- ZoneLinkButton.cs
- ZoneLinkButton.cs
- OutputCacheSection.cs
- SqlRowUpdatedEvent.cs
- LookupBindingPropertiesAttribute.cs
- _UriTypeConverter.cs
- WorkflowInstance.cs
- SessionEndingCancelEventArgs.cs
- ListMarkerLine.cs
- PersonalizationStateInfoCollection.cs
- CodeMemberField.cs
- ConnectionInterfaceCollection.cs
- SecurityProtocolCorrelationState.cs
- SystemColors.cs
- Line.cs
- SafeSystemMetrics.cs
- IPipelineRuntime.cs
- SHA1Cng.cs
- JumpPath.cs
- WindowsAuthenticationModule.cs
- PreviewPageInfo.cs
- PropertyChangedEventManager.cs
- MouseActionConverter.cs
- DoubleStorage.cs
- EnumUnknown.cs
- DragEvent.cs
- PersonalizableTypeEntry.cs
- WizardForm.cs
- PersianCalendar.cs
- OleCmdHelper.cs
- ImportContext.cs
- EventLog.cs
- Marshal.cs
- WpfXamlLoader.cs
- CollectionBase.cs
- CustomCategoryAttribute.cs
- RoleGroup.cs
- DataQuery.cs
- ServicePerformanceCounters.cs
- _StreamFramer.cs
- ImageFormatConverter.cs
- ValueQuery.cs
- AggregateNode.cs
- QueryStack.cs
- FileLogRecordEnumerator.cs
- XmlIncludeAttribute.cs
- ProviderUtil.cs
- DataListItemCollection.cs
- StrokeNode.cs
- AppDomainInstanceProvider.cs
- TableDetailsCollection.cs
- Membership.cs
- SpellerError.cs
- SqlUtils.cs
- TargetInvocationException.cs
- RIPEMD160Managed.cs
- FileRecordSequenceCompletedAsyncResult.cs
- FtpWebRequest.cs
- LineServices.cs
- HtmlValidatorAdapter.cs
- ComboBoxHelper.cs
- ApplicationSettingsBase.cs
- ControlUtil.cs
- SecurityTokenResolver.cs
- ClientSideProviderDescription.cs
- RichTextBoxConstants.cs
- ScriptServiceAttribute.cs
- ValueProviderWrapper.cs
- SubtreeProcessor.cs
- PageHandlerFactory.cs
- Validator.cs
- DataServiceContext.cs
- RemotingServices.cs
- Terminate.cs
- ClientOptions.cs
- EventLogTraceListener.cs
- EUCJPEncoding.cs
- Memoizer.cs
- ColorBlend.cs
- SR.cs
- StandardToolWindows.cs
- HierarchicalDataSourceConverter.cs
- WebEvents.cs
- HostedTcpTransportManager.cs
- TokenBasedSet.cs
- MarkupCompiler.cs
- Control.cs
- ToolStripButton.cs
- XmlCustomFormatter.cs
- X509Certificate.cs
- CapabilitiesPattern.cs
- MembershipPasswordException.cs
- ListDictionaryInternal.cs
- FloaterParaClient.cs
- EditorPart.cs
- ADRoleFactory.cs
- ConstrainedDataObject.cs
- ProtectedProviderSettings.cs
- ZoneLinkButton.cs