【问题标题】:How to get DataContext for UIElement?如何获取 UIElement 的 DataContext?
【发布时间】:2011-11-18 14:27:44
【问题描述】:

由于UIElement 没有DataContext 的属性,我如何获得UIElementDataContext

【问题讨论】:

    标签: silverlight silverlight-4.0 uielement


    【解决方案1】:

    DataContext 属性被引入到FrameworkElement 中的继承层次结构中。

    因为FrameworkElement 继承自UIElement,您必须确保UIElement 实际上是FrameworkElement

    if(uiElement is FrameworkElement frameworkElement)
    {
        var dc = frameworkElement.DataContext;
    }
    

    【讨论】:

      【解决方案2】:

      您应该能够将UIElement 转换为FrameworkElement,然后访问DataContext 属性。

      【讨论】:

      • 恕我直言,这不是一个好建议。通过直接从 UIElement 派生来创建自定义 UI 元素是完全合法的,如果您想要更轻量的控件和/或不需要或不想要 @ 的额外布局和数据处理功能,这甚至可能是首选987654325@。由于不能排除非 FE 控件的存在,考虑到 OP 提供的信息很少,“将 UIElement 转换为 FrameworkElement”似乎是不可靠的建议。
      猜你喜欢
      • 2017-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      相关资源
      最近更新 更多