【问题标题】:Default binding when Source and DataContext are not specifed未指定 Source 和 DataContext 时的默认绑定
【发布时间】:2012-09-06 16:09:49
【问题描述】:

我正在尝试了解 WPF 中数据绑定的一些细微差别。我知道可以直接在绑定上指定源(使用SourceRelativeSource 等)或依赖目标对象层次结构中的DataContext,这样DataContext 的第一个设置值遇到遍历目标的祖先为任何绑定提供源。

我无法解决的是如果源没有以某种方式设置会发生什么(即DataContext 没有在目标祖先的任何地方明确设置,并且绑定只指定了Path )。

  1. 绑定引擎在哪里(如果在任何地方)查找Path 中指定的源属性?
  2. 如果在这种情况下绑定失败,为什么我在 VS“输出”窗口中似乎没有收到任何错误(此处通常显示绑定错误)?

(.net 4.5,VS 2012 RC,Win 7 32 位)

【问题讨论】:

    标签: .net wpf xaml data-binding


    【解决方案1】:

    发生的情况是您的绑定没有绑定到任何东西。这不是绑定错误,因为您不必显式设置 DataContext(它是从逻辑树的其他元素继承而来),因此拥有一个等待其 DataContext 设置的控件是完全有效的。

    【讨论】:

    • 当然!我没有考虑过不想或不能立即绑定的问题,但这显然是有用的,因此在这种情况下完全不绑定是非常合理的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 2012-09-06
    • 2011-07-07
    • 2012-11-22
    • 2010-11-24
    • 2010-09-23
    相关资源
    最近更新 更多