private static CellEditor GetCellEditor(object key)
        {
            var resource = default(CellEditor);

            if (!DefaultCellEditorSelector.TryGetCellEditor(key, out resource))
            {
                throw new KeyNotFoundException("Resource not found");
            }

            return(resource);
        }
        public static CellEditor SelectCellEditor(Type dataType)
        {
            if (dataType == null)
            {
                return(null);
            }

            if (dataType.IsGenericType && (dataType.GetGenericTypeDefinition() == typeof(Nullable <>)))
            {
                dataType = Nullable.GetUnderlyingType(dataType);
            }

            var editor = default(CellEditor);

            if (DefaultCellEditorSelector.TryGetCellEditor(dataType.FullName, out editor))
            {
                return(editor);
            }

            return(null);
        }