Есть ли разница (или преимущество) для использования этого утверждения:
Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}"
с пропуском атрибута x:Key?
x:Key
Я думаю, что WPF назначает ключ для того же x:Type под капотом.
x:Type
Документация MSDN для Style.TargetType подтверждает ваши подозрения:
Style.TargetType
Установка свойства TargetType для типа TextBlock без установки x: Key неявно устанавливает x: Key в {x: Type TextBlock}. Это также означает, что если вы передадите вышеуказанному стилю значение x: Key, отличное от {x: Type TextBlock}, стиль не будет применен ко всем элементам TextBlock автоматически. Вместо этого вам нужно явно применить стиль к элементам TextBlock.
Если ключ словаря ресурсов стиля является типом, этот стиль используется в качестве стиля по умолчанию для всех экземпляров этого типа, которые явно не определяют стиль. Поскольку обычно указывается целевой тип, синтаксис пропуска ключа - это просто ярлык для определения стиля по умолчанию.