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
- CodeStatement.cs
- GridEntryCollection.cs
- Model3DGroup.cs
- WebScriptEnablingElement.cs
- ToolStripPanelRenderEventArgs.cs
- OdbcUtils.cs
- ValidatingReaderNodeData.cs
- InternalConfigSettingsFactory.cs
- DataGridHelper.cs
- sitestring.cs
- FileLevelControlBuilderAttribute.cs
- ContentDisposition.cs
- CacheForPrimitiveTypes.cs
- QueryInterceptorAttribute.cs
- BooleanConverter.cs
- StringFunctions.cs
- StatusInfoItem.cs
- CodeAttributeDeclarationCollection.cs
- RootBrowserWindowProxy.cs
- PagedDataSource.cs
- ManifestResourceInfo.cs
- SendMessageContent.cs
- JsonClassDataContract.cs
- TimerElapsedEvenArgs.cs
- SchemaDeclBase.cs
- SettingsPropertyNotFoundException.cs
- SplitterPanel.cs
- JsonDeserializer.cs
- SmiEventStream.cs
- DateTimeOffsetConverter.cs
- CursorEditor.cs
- StylusLogic.cs
- DataGridColumnDropSeparator.cs
- CodeDOMProvider.cs
- FormViewInsertedEventArgs.cs
- UriPrefixTable.cs
- activationcontext.cs
- EventSinkHelperWriter.cs
- DataGridTablesFactory.cs
- ActivityPreviewDesigner.cs
- DataControlFieldHeaderCell.cs
- Bits.cs
- CounterNameConverter.cs
- Triangle.cs
- EntityStoreSchemaGenerator.cs
- FreezableOperations.cs
- odbcmetadatafactory.cs
- UICuesEvent.cs
- Stopwatch.cs
- SingleStorage.cs
- TextContainerChangeEventArgs.cs
- EncryptedKeyIdentifierClause.cs
- SamlAuthenticationStatement.cs
- HealthMonitoringSectionHelper.cs
- WebPartCatalogCloseVerb.cs
- DeploymentExceptionMapper.cs
- RowUpdatedEventArgs.cs
- DomainConstraint.cs
- OpenFileDialog.cs
- IODescriptionAttribute.cs
- TrackingStringDictionary.cs
- SafeRightsManagementSessionHandle.cs
- MailDefinition.cs
- MessageQueuePermissionAttribute.cs
- ApplicationFileCodeDomTreeGenerator.cs
- SQLString.cs
- Ref.cs
- ResourceManager.cs
- DataKey.cs
- SafePEFileHandle.cs
- DataTransferEventArgs.cs
- Missing.cs
- PropertyEmitterBase.cs
- XmlSchemaAppInfo.cs
- ObjectReaderCompiler.cs
- ViewStateModeByIdAttribute.cs
- ObjectDataSourceChooseMethodsPanel.cs
- InkCanvasInnerCanvas.cs
- SystemIPGlobalProperties.cs
- DataMember.cs
- CachedTypeface.cs
- TransformGroup.cs
- ExpressionBuilderCollection.cs
- TextElementCollection.cs
- datacache.cs
- PrimaryKeyTypeConverter.cs
- NoneExcludedImageIndexConverter.cs
- WindowsListViewSubItem.cs
- ArrayList.cs
- VectorCollectionValueSerializer.cs
- WinFormsSpinner.cs
- COM2FontConverter.cs
- NonParentingControl.cs
- InkCanvasSelection.cs
- DebuggerAttributes.cs
- WebConfigurationFileMap.cs
- CommentAction.cs
- MetaDataInfo.cs
- ResourceProviderFactory.cs
- CaretElement.cs