diff --git a/src/Plugin/Transform/Field/EntityTransform.php b/src/Plugin/Transform/Field/EntityTransform.php
index ad3e334..345a5fb 100644
--- a/src/Plugin/Transform/Field/EntityTransform.php
+++ b/src/Plugin/Transform/Field/EntityTransform.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\transform_api\Plugin\Transform\Field;
 
+use Drupal\Core\Entity\EntityTypeBundleInfoInterface;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Field\EntityReferenceFieldItemListInterface;
 use Drupal\Core\Field\FieldDefinitionInterface;
@@ -40,6 +41,13 @@ class EntityTransform extends FieldTransformBase {
    */
   protected $entityTypeManager;
 
+  /**
+   * The entity type bundle info service.
+   *
+   * @var \Drupal\Core\Entity\EntityTypeBundleInfoInterface
+   */
+  protected $entityTypeBundleInfo;
+
   /**
    * Constructs a EntityTransform object.
    *
@@ -61,18 +69,21 @@ class EntityTransform extends FieldTransformBase {
    *   The transform mode repository.
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
    *   The entity type manager.
+   * @param \Drupal\Core\Entity\EntityTypeBundleInfoInterface|null $entity_type_bundle_info
+   *   The entity type bundle info service.
    */
-  public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, $label, $transform_mode, array $third_party_settings, EntityTransformRepositoryInterface $entityTransformRepository, EntityTypeManagerInterface $entityTypeManager) {
+  public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, $label, $transform_mode, array $third_party_settings, EntityTransformRepositoryInterface $entityTransformRepository, EntityTypeManagerInterface $entityTypeManager, ?EntityTypeBundleInfoInterface $entity_type_bundle_info = NULL) {
     parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $label, $transform_mode, $third_party_settings);
     $this->entityTransformRepository = $entityTransformRepository;
     $this->entityTypeManager = $entityTypeManager;
+    $this->entityTypeBundleInfo = $entity_type_bundle_info ?: \Drupal::service('entity_type.bundle.info');
   }
 
   /**
    * {@inheritdoc}
    */
   public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
-    return new static($plugin_id, $plugin_definition, $configuration['field_definition'], $configuration['settings'], $configuration['label'], $configuration['transform_mode'], $configuration['third_party_settings'], $container->get('transform_api.entity_display.repository'), $container->get('entity_type.manager'));
+    return new static($plugin_id, $plugin_definition, $configuration['field_definition'], $configuration['settings'], $configuration['label'], $configuration['transform_mode'], $configuration['third_party_settings'], $container->get('transform_api.entity_display.repository'), $container->get('entity_type.manager'), $container->get('entity_type.bundle.info'));
   }
 
   /**
@@ -110,7 +121,7 @@ class EntityTransform extends FieldTransformBase {
   public function getTransformModes(): array {
     $transform_modes = [];
     $entity_type_id = $this->getFieldSetting('target_type');
-    foreach ($this->getFieldSetting('handler_settings')['target_bundles'] ?? [] as $bundle) {
+    foreach ($this->getTargetBundles($entity_type_id) as $bundle) {
       $transform_modes += $this->entityTransformRepository->getTransformModeOptionsByBundle($entity_type_id, $bundle);
     }
     if (empty($transform_modes)) {
@@ -119,6 +130,28 @@ class EntityTransform extends FieldTransformBase {
     return $transform_modes;
   }
 
+  /**
+   * Returns the bundles to inspect for available transform modes.
+   *
+   * @param string $entity_type_id
+   *   The referenced entity type ID.
+   *
+   * @return array
+   *   The bundle IDs.
+   */
+  protected function getTargetBundles(string $entity_type_id): array {
+    $handler_settings = $this->getFieldSetting('handler_settings') ?? [];
+    if (!empty($handler_settings['target_bundles'])) {
+      return array_values($handler_settings['target_bundles']);
+    }
+
+    if ($this->getFieldSetting('handler') === 'views') {
+      return array_keys($this->entityTypeBundleInfo->getBundleInfo($entity_type_id));
+    }
+
+    return [];
+  }
+
   /**
    * {@inheritdoc}
    */
