В общем, когда кто-то использует ваш элемент управления, он захочет установить его контекст данных для своего собственного класса модели представления и связать свойства вашего элемента управления со своей моделью представления.
Если вы начинаете возиться с контекстом данных внутри элемента управления и полагаетесь, что для него установлено значение «this», то вы либо запретите их привязку, либо ваш элемент управления не будет работать должным образом, поскольку вы полагаетесь на это не изменяется.
Скажем, у вас есть пользовательский элемент управления, в котором есть множество элементов управления. Вместо этого вы могли бы установить DataContext на субэлементах в качестве вашего пользовательского класса управления (или того, что вы хотели). Это позволит вам привязать эти субэлементы к свойствам вашего пользовательского элемента управления, в то же время позволяя всем пользователям вашего элемента управления устанавливать его контекст данных для своей модели представления и привязывать также к свойствам.