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
- ProcessHostServerConfig.cs
- ScriptReferenceEventArgs.cs
- PanelStyle.cs
- HostingMessageProperty.cs
- ReadOnlyState.cs
- XmlSchemaGroup.cs
- ProcessStartInfo.cs
- ListViewInsertionMark.cs
- Util.cs
- CompositeClientFormatter.cs
- OLEDB_Enum.cs
- ForeignKeyConstraint.cs
- METAHEADER.cs
- PlatformNotSupportedException.cs
- PoisonMessageException.cs
- GridViewDeleteEventArgs.cs
- Grammar.cs
- WebPartRestoreVerb.cs
- StrokeNodeData.cs
- Button.cs
- SqlParameterizer.cs
- BaseTemplatedMobileComponentEditor.cs
- EntityAdapter.cs
- TraceContextEventArgs.cs
- XmlAttributeAttribute.cs
- TemplatedMailWebEventProvider.cs
- HttpContext.cs
- Range.cs
- ConfigXmlWhitespace.cs
- SizeAnimationUsingKeyFrames.cs
- GenericEnumerator.cs
- DiscoveryServerProtocol.cs
- CompModHelpers.cs
- BaseCodePageEncoding.cs
- FixedTextView.cs
- sqlser.cs
- SqlUtils.cs
- OperationCanceledException.cs
- WorkflowDefinitionContext.cs
- ExpressionConverter.cs
- GuidelineCollection.cs
- MimeTypeAttribute.cs
- PartialCachingControl.cs
- Select.cs
- LineServicesRun.cs
- KeyedHashAlgorithm.cs
- ComponentDispatcherThread.cs
- CharacterBuffer.cs
- StringSorter.cs
- ProviderConnectionPoint.cs
- WindowsPen.cs
- DirectoryInfo.cs
- LocalizableResourceBuilder.cs
- WebContext.cs
- PropertyToken.cs
- ListViewEditEventArgs.cs
- ValidatorCollection.cs
- ListBoxChrome.cs
- DataGridCellsPanel.cs
- EntityDesignerDataSourceView.cs
- ManagedWndProcTracker.cs
- WindowHideOrCloseTracker.cs
- ToolboxItem.cs
- TreeWalkHelper.cs
- TraceInternal.cs
- COM2EnumConverter.cs
- NamespaceQuery.cs
- ListViewGroupConverter.cs
- AssemblyUtil.cs
- StackBuilderSink.cs
- TreeViewHitTestInfo.cs
- Configuration.cs
- DataControlFieldCollection.cs
- ClientScriptManagerWrapper.cs
- RoutedEventValueSerializer.cs
- CanonicalizationDriver.cs
- TableItemStyle.cs
- UpdateRecord.cs
- StylusPointPropertyInfo.cs
- ObjectListGeneralPage.cs
- XmlSchemaSimpleContent.cs
- EntityDesignerDataSourceView.cs
- RouteTable.cs
- SQLBinary.cs
- ActivityCodeDomReferenceService.cs
- CachedPathData.cs
- HebrewNumber.cs
- EventLogPropertySelector.cs
- RedistVersionInfo.cs
- XmlSigningNodeWriter.cs
- EventRouteFactory.cs
- StorageComplexPropertyMapping.cs
- OutKeywords.cs
- XmlSequenceWriter.cs
- XslTransform.cs
- StoragePropertyMapping.cs
- ImpersonationContext.cs
- CodeTypeReferenceExpression.cs
- WindowsAltTab.cs
- FrugalList.cs