【问题标题】:What's wrong with "DataContext = this" in WPF user controls?WPF 用户控件中的“DataContext = this”有什么问题?
【发布时间】:2011-01-10 08:38:42
【问题描述】:

我在某处读到,在用户控件的构造函数中设置 DataContext = this 是不好的做法(虽然找不到位置)。为什么这是不好的做法?有什么选择?

【问题讨论】:

    标签: c# wpf datacontext


    【解决方案1】:

    一般来说,当有人使用您的控件时,他们会希望将其数据上下文设置为他们自己的视图模型类,并将您控件上的属性绑定到他们的视图模型。

    如果您开始在控件内部弄乱数据上下文,并依赖于将其设置为“this”,那么您将阻止它们的绑定工作,或者您的控件将无法按预期工作,因为您依赖它没有被改变。


    假设您有一个用户控件,上面有一堆子控件。您可以做的是将子控件上的 DataContext 设置为您的用户控件类(或任何您想要的)。这将允许您将这些子控件绑定到您的用户控件的属性,同时仍然允许您的控件的任何用户将其数据上下文设置到他们的视图模型并绑定到属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多