一般来说,当有人使用您的控件时,他们会想将其数据上下文设置为他们自己的视图模型类,并绑定您的控件的属性到他们的视图模型。如果您在控件内部开始操纵数据上下文,并依赖于它被设置为“this”,那么您要么会阻止它们的绑定工作,要么您的控件将无法按预期工作,因为您依赖于它不被更改。假设您有一个用户控件,其中包含大量子控件。相反,您可以将子控件上的DataContext设置为您的UserControl类(或任何您想要的内容)。这将允许您将这些子控件绑定到您的用户控件的属性,同时仍然允许您控件的任何用户将其数据上下文设置为他们的视图模型并绑定到属性。