获取尚未显示的 UI 项目的 AttachedProperty 值

发布于 2024-12-06 10:55:18 字数 801 浏览 0 评论 0原文

执行以下操作

  • 我正在尝试使用 MVVM、Binding 和 AttachedProperty创建 ViewObj (System.Windows.Controls.Control 派生类)
    • ViewObj 在名为 View 的类中声明了 1 个名为“Order”(OrderProperty) 的 AttachedProperty。
    • 附加属性绑定在 xaml 中 ViewModel 的属性上
  • 创建 ViewModel
  • 将 ViewModel 设置为 ViewObj 的 DataContext

在显示/渲染 ViewObj 等之前。

  • 在代码中获取订单 var order = View.GetOrder(ViewObj)

  • ViewObj 已显示并正在显示绑定值...

如果 AttachedProperty 是一个值而不是绑定表达式,则返回的值View.GetOrder(ViewObj) 是一个好的方法,而不是默认的方法。

有什么想法吗?

编辑:

我强制使用 BindingExpression 类来评估数据绑定表达式。我发现 BindingExpression.Status 设置为 Unattached 这似乎解释了为什么它不起作用。

我认为当元素附加到可视树时绑定就附加了。

但是......这对我的问题没有多大帮助......

I'm trying to do the following using MVVM, Binding and AttachedProperty

  • Create a ViewObj (System.Windows.Controls.Control derived class)
    • The ViewObj has 1 AttachedProperty named "Order" (OrderProperty) declared in a class named View.
    • The attached property is bound on a property of the ViewModel in the xaml
  • Create the ViewModel
  • Set the ViewModel as DataContext of the ViewObj

Before the ViewObj is displayed/rendered/etc.

  • Get the order in code doing var order = View.GetOrder(ViewObj)

  • The ViewObj is displayed and is showing the bound value ...

If the AttachedProperty is a value and not a binding expression, the value returned by View.GetOrder(ViewObj) is the good one and not the default one.

Any ideas?

EDIT:

I forced the databinding expression to be evaluated using the BindingExpression class. I discovered that the BindingExpression.Status was set to Unattached which seems to explain why it is not working.

I think the binding is attached when the element is attached to the visual tree.

But ... that do not help me a lot with my problem ...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半步萧音过轻尘 2024-12-13 10:55:18

我发现(至少在我的情况下),BindingUnattached,但DataContext 已设置。

因此,我决定获取 DataContext(ViewModel)并使用它。

欢迎任何其他建议。

I discovered that (in my case at least), the Binding was Unattached, but the DataContext was set.

So I decided to get the DataContext (the ViewModel) and to work with it.

Any others suggestions are welcome.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文