对于我们的WPF应用程序,我设计了一个CustomControl来模仿一些类似弹出的行为。弹出窗口基本上只包含FrameworkElement
,其中包含放置在弹出窗口内的内容。
放置在弹出窗口的FrameworkElement
中的控件当然绑定到其他控件。但是,我很困惑,因为这会导致几个问题:
我无法使用ElementName=sourceName
来设置绑定的来源。相反,我必须使用Source={x:Reference sourceName}
来表示来源。
VisualStudio的XAML编辑器标记出现此类型绑定的所有行,并且ErrorList显示每次出现绑定时“对象引用未设置为对象的实例”(不会抛出任何异常)设计师观点)。
项目成功构建,在运行时,所有绑定都可以正常运行!除此之外,如果将弹出按钮实现为UserControl或CustomControl,则无关紧要。
如果未放置在弹出按钮中的控件绑定到同一个源,我可以使用ElementName=sourceName
而没有任何问题,并且设计器中会显示正确的值。
正如在其他一些有关此错误的回复中所提出的,我尝试将VS实例附加到VS的第二个实例的调试器,但没有显示错误/异常。
如前所述,一切都在运行时运行。但是,由于多个开发人员正在开发此项目,因此根本不会出现任何错误;警告在某种程度上是可以接受的。
我们知道使用绑定代理(例如在https://stackoverflow.com/a/22531679/119177中建议)应该/可以解决问题。但是,因为当前绑定实际上正在工作,我们希望以其他方式解决设计时问题(甚至可能只是抑制错误消息)。
感谢您的帮助!