Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebControls / TreeNodeBindingCollection.cs / 1 / TreeNodeBindingCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System;
using System.Collections;
using System.ComponentModel;
using System.Security.Permissions;
using System.Web;
///
/// Provides a collection of TreeNodeBinding objects
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class TreeNodeBindingCollection : StateManagedCollection {
private static readonly Type[] knownTypes = new Type[] { typeof(TreeNodeBinding) };
private TreeNodeBinding _defaultBinding;
internal TreeNodeBindingCollection() {
}
///
/// Gets the TreeNodeBinding at the specified index
///
public TreeNodeBinding this[int i] {
get {
return (TreeNodeBinding)((IList)this)[i];
}
set {
((IList)this)[i] = value;
}
}
///
/// Adds a TreeNodeBinding to the collection
///
public int Add(TreeNodeBinding binding) {
return ((IList)this).Add(binding);
}
public bool Contains(TreeNodeBinding binding) {
return ((IList)this).Contains(binding);
}
public void CopyTo(TreeNodeBinding[] bindingArray, int index) {
base.CopyTo(bindingArray, index);
}
protected override object CreateKnownType(int index) {
return new TreeNodeBinding();
}
private void FindDefaultBinding() {
_defaultBinding = null;
// Look for another binding that would be a good default
foreach (TreeNodeBinding binding in this) {
if (binding.Depth == -1 && binding.DataMember.Length == 0) {
_defaultBinding = binding;
break;
}
}
}
///
/// Gets a TreeNodeBinding data binding definition for the specified depth or datamember
///
internal TreeNodeBinding GetBinding(string dataMember, int depth) {
TreeNodeBinding bestMatch = null;
int match = 0;
if ((dataMember != null) && (dataMember.Length == 0)) {
dataMember = null;
}
foreach (TreeNodeBinding binding in this) {
if ((binding.Depth == depth)) {
if (String.Equals(binding.DataMember, dataMember, StringComparison.CurrentCultureIgnoreCase)) {
return binding;
}
else if ((match < 1) && (binding.DataMember.Length == 0)) {
bestMatch = binding;
match = 1;
}
}
else if (String.Equals(binding.DataMember, dataMember, StringComparison.CurrentCultureIgnoreCase) &&
(match < 2) &&
(binding.Depth == -1)) {
bestMatch = binding;
match = 2;
}
}
if (bestMatch == null) {
// Check that the default binding is still suitable (VSWhidbey 358817)
if (_defaultBinding != null) {
if (_defaultBinding.Depth != -1 || _defaultBinding.DataMember.Length != 0) {
// Look for another binding that would be a good default
FindDefaultBinding();
}
bestMatch = _defaultBinding;
}
}
return bestMatch;
}
protected override Type[] GetKnownTypes() {
return knownTypes;
}
public int IndexOf(TreeNodeBinding binding) {
return ((IList)this).IndexOf(binding);
}
public void Insert(int index, TreeNodeBinding binding) {
((IList)this).Insert(index, binding);
}
protected override void OnClear() {
base.OnClear();
_defaultBinding = null;
}
protected override void OnRemoveComplete(int index, object value) {
if (value == _defaultBinding) {
FindDefaultBinding();
}
}
protected override void OnValidate(object value) {
base.OnValidate(value);
TreeNodeBinding binding = value as TreeNodeBinding;
if ((binding != null) && (binding.DataMember.Length == 0) && (binding.Depth == -1)) {
_defaultBinding = binding;
}
}
///
/// Removes a TreeNodeBinding from the collection.
///
public void Remove(TreeNodeBinding binding) {
((IList)this).Remove(binding);
}
///
/// Removes a TreeNodeBinding from the collection at a given index.
///
public void RemoveAt(int index) {
((IList)this).RemoveAt(index);
}
protected override void SetDirtyObject(object o) {
if (o is TreeNodeBinding) {
((TreeNodeBinding)o).SetDirty();
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToggleButton.cs
- PerformanceCounter.cs
- SelectionEditingBehavior.cs
- CodeDelegateCreateExpression.cs
- SynthesizerStateChangedEventArgs.cs
- _Rfc2616CacheValidators.cs
- SafeCancelMibChangeNotify.cs
- Point3DCollection.cs
- ScriptingRoleServiceSection.cs
- ReverseInheritProperty.cs
- LassoSelectionBehavior.cs
- SendMailErrorEventArgs.cs
- RelationshipType.cs
- CanonicalFontFamilyReference.cs
- _NetworkingPerfCounters.cs
- TransactionCache.cs
- SeverityFilter.cs
- safesecurityhelperavalon.cs
- ActivityBuilderHelper.cs
- Axis.cs
- XmlSchemaElement.cs
- HandlerBase.cs
- FormsAuthenticationConfiguration.cs
- ElapsedEventArgs.cs
- ContextMenu.cs
- Utils.cs
- ParallelDesigner.cs
- Rijndael.cs
- OdbcConnection.cs
- SafeArrayTypeMismatchException.cs
- TrackPoint.cs
- ExpressionLink.cs
- SchemaImporterExtensionsSection.cs
- Opcode.cs
- LineBreak.cs
- OverlappedAsyncResult.cs
- CallbackValidator.cs
- XComponentModel.cs
- ApplicationManager.cs
- DataPagerField.cs
- DifferencingCollection.cs
- MimeMapping.cs
- CodeExpressionCollection.cs
- BufferedGraphics.cs
- PageEventArgs.cs
- PhysicalOps.cs
- WebBrowserHelper.cs
- SchemaEntity.cs
- RegexCompiler.cs
- RadioButtonList.cs
- httpstaticobjectscollection.cs
- EmptyReadOnlyDictionaryInternal.cs
- RegexCharClass.cs
- Command.cs
- ProfileParameter.cs
- InputBuffer.cs
- MetadataCache.cs
- WebPartAuthorizationEventArgs.cs
- ContentFilePart.cs
- EastAsianLunisolarCalendar.cs
- DocumentGridPage.cs
- Int64KeyFrameCollection.cs
- FileDialogCustomPlace.cs
- SweepDirectionValidation.cs
- EventsTab.cs
- AlignmentYValidation.cs
- QilPatternVisitor.cs
- BehaviorEditorPart.cs
- SerialErrors.cs
- EditingCommands.cs
- ValueUtilsSmi.cs
- SqlCaseSimplifier.cs
- Util.cs
- FormsAuthenticationUser.cs
- ConfigurationSettings.cs
- UIElementAutomationPeer.cs
- DataReceivedEventArgs.cs
- SafeRegistryHandle.cs
- SqlConnectionFactory.cs
- Compiler.cs
- FunctionImportElement.cs
- CodeDOMUtility.cs
- DataPagerField.cs
- UICuesEvent.cs
- CapabilitiesState.cs
- VisualBrush.cs
- Size3DValueSerializer.cs
- SqlGatherConsumedAliases.cs
- SHA1CryptoServiceProvider.cs
- RadioButtonPopupAdapter.cs
- EnumConverter.cs
- GeneratedContractType.cs
- VisualStyleInformation.cs
- ArrayElementGridEntry.cs
- CodeExporter.cs
- DataGridHyperlinkColumn.cs
- Tracking.cs
- WindowsListViewScroll.cs
- HttpResponseInternalWrapper.cs
- TemplatedMailWebEventProvider.cs