【问题标题】:starting with an empty DataContext on a popup从弹出窗口上的空 DataContext 开始
【发布时间】:2026-01-13 10:15:01
【问题描述】:

我有一个在运行时绑定到图表元素的弹出窗口。绑定在 XAML 中定义。当应用程序启动时,由于 XAML 绑定无效(按设计),我在即时窗口中收到许多错误。

我需要一种方法来禁用此弹出窗口上的绑定,直到我即将在鼠标悬停事件期间(在后面的代码中)显示它,这也是我设置 DataContext 的时候。我可以在 XAML 中禁用绑定,然后在后面的代码中重新启用它们吗?

【问题讨论】:

    标签: wpf binding


    【解决方案1】:

    请看以下两篇关于如何使用 Binding.DoNothing 临时分离绑定的文章。

    1. Prevent a binding from updating too frequently
    2. Is there any way to temporarily detach a binding in WPF?

    【讨论】:

    • 好主意,但这不起作用。因为绑定被破坏,ValueConverter 永远不会被调用。默认情况下,我的弹出窗口被绑定到它在可视树中的第一个绑定父级(在本例中为 DevExpress 图表) - 我需要在 Xaml 中指定“Binding=Nothing”。
    【解决方案2】:

    找到正确的语法 - 需要在 Xaml 中将 datacontext 设置为空,如下所示:

     DataContext="{x:Null}
    

    【讨论】: