В отличие от анимации, которая может «содержать» свойство зависимости с указанным значением после завершения анимации, DataTrigger устанавливает целевое свойство и затем выполняется до изменения свойства источника.
Другими словами, вваш пример, если вы поместите какой-то текст в текстовое поле, а затем установите флажок, текст будет очищен.Но если вы снова начнете вводить текстовое поле, DataTrigger не будет ничего делать, пока флажок не изменится.Вот почему, когда вы снимаете флажок и повторно устанавливаете флажок, текст снова очищается.
Так что вы можете захотеть сделать это в вашем DataTrigger, установить свойство IsReadOnly текстового поля в true.Это не позволит вам набирать текст в поле, пока активен DataTrigger.
<DataTrigger Binding="{Binding ElementName=Chk,Path=IsChecked}" Value="True">
<Setter Property="Text" Value="{x:Null}"/>
<Setter Property="IsReadOnly" Value="True"/>
</DataTrigger>