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
- FontSource.cs
- CommandSet.cs
- MultiView.cs
- ExtendedPropertiesHandler.cs
- MustUnderstandSoapException.cs
- UIElement3DAutomationPeer.cs
- TouchesCapturedWithinProperty.cs
- DataViewManager.cs
- SafeBitVector32.cs
- MouseActionValueSerializer.cs
- OracleBinary.cs
- FileLogRecordStream.cs
- FormViewDeleteEventArgs.cs
- BCLDebug.cs
- StringTraceRecord.cs
- XmlTextAttribute.cs
- RootProfilePropertySettingsCollection.cs
- GZipDecoder.cs
- OdbcParameter.cs
- VisualBasic.cs
- StrictAndMessageFilter.cs
- ProviderCommandInfoUtils.cs
- InkCanvas.cs
- XmlQueryCardinality.cs
- KeyProperty.cs
- GenerateTemporaryTargetAssembly.cs
- ContentFilePart.cs
- StringResourceManager.cs
- FamilyCollection.cs
- Validator.cs
- DefinitionBase.cs
- IndexerNameAttribute.cs
- ParserHooks.cs
- Point4DConverter.cs
- Canonicalizers.cs
- SizeKeyFrameCollection.cs
- GenericWebPart.cs
- SQLBytes.cs
- TraceHwndHost.cs
- PropertyInfoSet.cs
- SHA384CryptoServiceProvider.cs
- OleDbCommand.cs
- DBSchemaTable.cs
- OleDbInfoMessageEvent.cs
- BaseCodePageEncoding.cs
- TreeNodeBindingCollection.cs
- XmlSortKeyAccumulator.cs
- Dispatcher.cs
- MarkupObject.cs
- DrawingVisual.cs
- RenderCapability.cs
- HttpProcessUtility.cs
- XmlJsonReader.cs
- NativeDirectoryServicesQueryAPIs.cs
- FamilyMapCollection.cs
- HeaderUtility.cs
- PersonalizationEntry.cs
- NetMsmqBindingCollectionElement.cs
- MdImport.cs
- Journal.cs
- FileReader.cs
- StringAnimationBase.cs
- CustomDictionarySources.cs
- SecuritySessionSecurityTokenAuthenticator.cs
- SchemaImporterExtensionElementCollection.cs
- SQLDateTime.cs
- PerformanceCounter.cs
- DeleteBookmarkScope.cs
- ItemContainerPattern.cs
- ErrorFormatterPage.cs
- MouseEventArgs.cs
- Animatable.cs
- MessageQueueTransaction.cs
- GeneralTransformCollection.cs
- PermissionSetEnumerator.cs
- ToolStripHighContrastRenderer.cs
- Encoding.cs
- GridViewCancelEditEventArgs.cs
- FrameworkElementFactory.cs
- EntitySetBase.cs
- DeploymentExceptionMapper.cs
- ImportCatalogPart.cs
- PingReply.cs
- DateBoldEvent.cs
- FileIOPermission.cs
- StringInfo.cs
- ErasingStroke.cs
- MimePart.cs
- ClientRequest.cs
- TemplateControlParser.cs
- XappLauncher.cs
- FilterFactory.cs
- TdsParserSafeHandles.cs
- SessionStateItemCollection.cs
- TextReturnReader.cs
- TextRunTypographyProperties.cs
- StrokeRenderer.cs
- InvalidProgramException.cs
- XmlEncodedRawTextWriter.cs
- LayoutInformation.cs