代码之家  ›  专栏  ›  技术社区  ›  mackenir

Silverlight4中DependencyObject的DataContext是什么?

  •  1
  • mackenir  · 技术社区  · 15 年前

    对于FrameworkElements,元素的DataContext属性是源对象(如果DataContext不是直接设置的,则在树上查找DataContext)。

    对于DependencyObjects,我猜使用的DataContext是XAML文件中“containing”FrameworkElement的DataContext。但是确定这个包含对象的机制是什么呢?

    在我的特殊情况下,我试图绑定一个DependencyObject的属性,该对象位于一个observeCollection中,它是FrameworkElement的属性。不幸的是,尝试绑定DependencyObject上的属性失败,因为数据绑定系统似乎将DependencyObject本身用作自己的DataContext。它抱怨(在输出窗口中)类型没有绑定表达式中指定名称的属性。使用相同的绑定表达式将同一UserControl中FrameworkElement的依赖项属性绑定成功。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Julien Roncaglia    14 年前

    在定义绑定时是否尝试过声明Source或ElementName属性?

    (例如: {Binding Source={StaticResource theFrameworkElement} Path=theObservableCollection[0]}

    {Binding ElementName=theFrameworkElement Path=theObservableCollection[0]}

    推荐文章