使用Source和x进行绑定:Reference会导致设计时错误

时间:2015-05-29 08:44:38

标签: c# wpf visual-studio xaml visual-studio-2013

对于我们的WPF应用程序,我设计了一个CustomControl来模仿一些类似弹出的行为。弹出窗口基本上只包含FrameworkElement,其中包含放置在弹出窗口内的内容。

放置在弹出窗口的FrameworkElement中的控件当然绑定到其他控件。但是,我很困惑,因为这会导致几个问题:

  1. 我无法使用ElementName=sourceName来设置绑定的来源。相反,我必须使用Source={x:Reference sourceName}来表示来源。

  2. VisualStudio的XAML编辑器标记出现此类型绑定的所有行,并且ErrorList显示每次出现绑定时“对象引用未设置为对象的实例”(不会抛出任何异常)设计师观点)。

  3. 项目成功构建,在运行时,所有绑定都可以正常运行!除此之外,如果将弹出按钮实现为UserControl或CustomControl,则无关紧要。

    如果未放置在弹出按钮中的控件绑定到同一个源,我可以使用ElementName=sourceName而没有任何问题,并且设计器中会显示正确的值。 正如在其他一些有关此错误的回复中所提出的,我尝试将VS实例附加到VS的第二个实例的调试器,但没有显示错误/异常。

    如前所述,一切都在运行时运行。但是,由于多个开发人员正在开发此项目,因此根本不会出现任何错误;警告在某种程度上是可以接受的。

    我们知道使用绑定代理(例如在https://stackoverflow.com/a/22531679/119177中建议)应该/可以解决问题。但是,因为当前绑定实际上正在工作,我们希望以其他方式解决设计时问题(甚至可能只是抑制错误消息)。

    感谢您的帮助!

0 个答案:

没有答案
相关问题