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
- ObjectRef.cs
- Vector3DAnimationUsingKeyFrames.cs
- EventArgs.cs
- PageOrientation.cs
- PeerTransportSecuritySettings.cs
- DataGridRowClipboardEventArgs.cs
- ThrowHelper.cs
- AttachedPropertyInfo.cs
- DoubleIndependentAnimationStorage.cs
- StructuralCache.cs
- ValidationHelper.cs
- IndexedEnumerable.cs
- FtpWebResponse.cs
- ObjectMemberMapping.cs
- WmlImageAdapter.cs
- ReliableMessagingVersionConverter.cs
- CodeCommentStatementCollection.cs
- FontUnit.cs
- HttpWebRequestElement.cs
- IPAddress.cs
- DisposableCollectionWrapper.cs
- messageonlyhwndwrapper.cs
- EdmMember.cs
- ManualResetEvent.cs
- SecurityElementBase.cs
- DataSourceControl.cs
- DotExpr.cs
- SourceLineInfo.cs
- SchemaTableOptionalColumn.cs
- SerialStream.cs
- TextEditorCopyPaste.cs
- SoapException.cs
- JournalEntryStack.cs
- ObjectQueryProvider.cs
- XsltException.cs
- HotSpotCollection.cs
- ModelItemDictionary.cs
- AspCompat.cs
- XmlSchemaComplexContentExtension.cs
- RowBinding.cs
- Int32Collection.cs
- validationstate.cs
- MetafileHeaderEmf.cs
- HttpInputStream.cs
- ToolStripDesignerAvailabilityAttribute.cs
- HMACMD5.cs
- SoapCodeExporter.cs
- TypefaceMap.cs
- X509SecurityTokenAuthenticator.cs
- BinHexEncoder.cs
- wgx_commands.cs
- IISUnsafeMethods.cs
- Parameter.cs
- SqlDataSourceEnumerator.cs
- WindowsListViewItemStartMenu.cs
- SessionStateItemCollection.cs
- QueryUtil.cs
- Types.cs
- RenderCapability.cs
- DebuggerService.cs
- basevalidator.cs
- HebrewCalendar.cs
- BuildDependencySet.cs
- ContentHostHelper.cs
- ForceCopyBuildProvider.cs
- ConnectionStringSettings.cs
- WebPartConnectionsConfigureVerb.cs
- HtmlInputControl.cs
- Int32Storage.cs
- LinkedList.cs
- Screen.cs
- Monitor.cs
- LinqDataSourceHelper.cs
- CompModSwitches.cs
- Contracts.cs
- GroupQuery.cs
- DataGridViewComboBoxCell.cs
- CollectionConverter.cs
- StorageScalarPropertyMapping.cs
- ConfigurationPropertyAttribute.cs
- MemberInitExpression.cs
- XmlAutoDetectWriter.cs
- ProxyDataContractResolver.cs
- ToolStripSeparatorRenderEventArgs.cs
- WebZone.cs
- XmlNodeComparer.cs
- JobInputBins.cs
- PointCollectionValueSerializer.cs
- StretchValidation.cs
- DataGridItem.cs
- XmlEntity.cs
- MouseWheelEventArgs.cs
- CompositeFontFamily.cs
- DetailsViewPageEventArgs.cs
- EdmItemCollection.OcAssemblyCache.cs
- RadioButton.cs
- DbFunctionCommandTree.cs
- KeyInstance.cs
- PropertyGridDesigner.cs
- NativeMethods.cs