Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Controls / DataGridItemAttachedStorage.cs / 1305600 / DataGridItemAttachedStorage.cs
//----------------------------------------------------------------------------
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//---------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Windows;
namespace System.Windows.Controls
{
///
/// Holds all of the information that we need to attach to row items so that we can restore rows when they're devirtualized.
///
internal class DataGridItemAttachedStorage
{
public void SetValue(object item, DependencyProperty property, object value)
{
var map = EnsureItem(item);
map[property] = value;
}
public bool TryGetValue(object item, DependencyProperty property, out object value)
{
value = null;
Dictionary map;
EnsureItemStorageMap();
if (_itemStorageMap.TryGetValue(item, out map))
{
return map.TryGetValue(property, out value);
}
return false;
}
public void ClearValue(object item, DependencyProperty property)
{
Dictionary map;
EnsureItemStorageMap();
if (_itemStorageMap.TryGetValue(item, out map))
{
map.Remove(property);
}
}
public void ClearItem(object item)
{
EnsureItemStorageMap();
_itemStorageMap.Remove(item);
}
public void Clear()
{
_itemStorageMap = null;
}
private void EnsureItemStorageMap()
{
if (_itemStorageMap == null)
{
_itemStorageMap = new Dictionary
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SecurityRuntime.cs
- PointLight.cs
- ToolCreatedEventArgs.cs
- QuaternionValueSerializer.cs
- XmlValidatingReader.cs
- _TransmitFileOverlappedAsyncResult.cs
- ScriptingWebServicesSectionGroup.cs
- ImageDrawing.cs
- WindowsImpersonationContext.cs
- HtmlTableCellCollection.cs
- ProcessManager.cs
- WorkflowMessageEventHandler.cs
- ProfileInfo.cs
- PropertyMappingExceptionEventArgs.cs
- RtfToXamlReader.cs
- BindingGroup.cs
- FixedSOMTable.cs
- DataRow.cs
- Configuration.cs
- EmissiveMaterial.cs
- WebZoneDesigner.cs
- WebReferenceOptions.cs
- XmlSortKey.cs
- CopyAction.cs
- VectorCollection.cs
- UIElement3D.cs
- EngineSiteSapi.cs
- PerformanceCountersElement.cs
- ProbeDuplexAsyncResult.cs
- BasicExpressionVisitor.cs
- XmlValueConverter.cs
- RotateTransform3D.cs
- Byte.cs
- AssemblyInfo.cs
- Column.cs
- StrokeNodeData.cs
- DropShadowBitmapEffect.cs
- ConfigXmlCDataSection.cs
- ToolStripDropDownButton.cs
- QfeChecker.cs
- FlowDocumentView.cs
- Root.cs
- XmlWrappingReader.cs
- ImmutableObjectAttribute.cs
- HttpCacheVaryByContentEncodings.cs
- ReverseInheritProperty.cs
- cache.cs
- CipherData.cs
- ReversePositionQuery.cs
- ContentFileHelper.cs
- CodePageEncoding.cs
- Mutex.cs
- ResXBuildProvider.cs
- JsonReaderDelegator.cs
- WindowsPrincipal.cs
- Command.cs
- TaskHelper.cs
- ApplicationSettingsBase.cs
- EarlyBoundInfo.cs
- ClientUtils.cs
- EntryIndex.cs
- LexicalChunk.cs
- RijndaelManagedTransform.cs
- XmlSchemaInfo.cs
- Group.cs
- MissingSatelliteAssemblyException.cs
- SelectionEditingBehavior.cs
- AsymmetricCryptoHandle.cs
- ImageKeyConverter.cs
- TextBoxBase.cs
- LinkTarget.cs
- UpdateManifestForBrowserApplication.cs
- StructuredProperty.cs
- SynchronizedDisposablePool.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- WindowsListViewScroll.cs
- SynchronizationContext.cs
- Helper.cs
- ResXFileRef.cs
- TagPrefixInfo.cs
- GenerateScriptTypeAttribute.cs
- AutomationPatternInfo.cs
- ChtmlFormAdapter.cs
- GlobalizationAssembly.cs
- ArraySortHelper.cs
- Thumb.cs
- BamlTreeUpdater.cs
- DataGridLinkButton.cs
- AssemblyCacheEntry.cs
- BrowserCapabilitiesFactoryBase.cs
- PeerObject.cs
- SmtpMail.cs
- ActivityCodeDomSerializationManager.cs
- NativeMsmqMessage.cs
- SqlXmlStorage.cs
- StreamUpgradeProvider.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- Freezable.cs
- LocatorBase.cs
- TextEditorSpelling.cs