Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }
Ejemplo n.º 3
0
        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);
        }