private DataTemplate GetFileMetadataDataTemplate(IDictionary <FileMetadataDataTemplateKey, DataTemplate> source, Type valueType, string keyName) { DebugHelper.AssertUIThread(); DataTemplate result = null; if (this.plugins != null) { Debug.Assert(source != null); Debug.Assert(valueType != null); Debug.Assert(!String.IsNullOrWhiteSpace(keyName)); FileMetadataDataTemplateKey key; lock (this.plugins) { key = new FileMetadataDataTemplateKey(valueType, keyName); if (!source.TryGetValue(key, out result)) { key = new FileMetadataDataTemplateKey(valueType); if (!source.TryGetValue(key, out result)) { result = null; } } } } return(result); }
private static void LoadDefaultDataTemplate(IDictionary <FileMetadataDataTemplateKey, DataTemplate> fileDestination, IDictionary <StreamMetadataDataTemplateKey, DataTemplate> streamDestination, string resourceKey, Type valueType) { DebugHelper.AssertUIThread(); Debug.Assert(fileDestination != null); Debug.Assert(streamDestination != null); Debug.Assert(resourceKey != null); Debug.Assert(valueType != null); DataTemplate dataTemplate = Application.Current.TryFindResource(resourceKey) as DataTemplate; if (dataTemplate != null) { if (fileDestination != null) { FileMetadataDataTemplateKey key = new FileMetadataDataTemplateKey(valueType); fileDestination.Add(key, dataTemplate); } if (streamDestination != null) { StreamMetadataDataTemplateKey key = new StreamMetadataDataTemplateKey(valueType); streamDestination.Add(key, dataTemplate); } } }
public override bool Equals(object obj) { bool result = false; FileMetadataDataTemplateKey other = obj as FileMetadataDataTemplateKey; if (other != null) { result = (this.valueType == other.valueType) && (this.keyName == other.keyName); } return(result); }