Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Source和x:Reference进行绑定会导致设计时错误_C#_Wpf_Visual Studio_Xaml_Visual Studio 2013 - Fatal编程技术网

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

C# 使用Source和x:Reference进行绑定会导致设计时错误,c#,wpf,visual-studio,xaml,visual-studio-2013,C#,Wpf,Visual Studio,Xaml,Visual Studio 2013,对于我们的WPF应用程序,我设计了一个CustomControl来模拟一些类似弹出的行为。弹出按钮基本上只包含一个框架元素,它保存放置在弹出按钮内的内容 当然,放置在弹出按钮的FrameworkElement中的控件会绑定到其他控件。然而,我感到困惑,因为这会导致几个问题: 我无法使用ElementName=sourceName设置绑定的源。相反,我必须使用Source={x:Reference sourceName}来表示源代码 VisualStudio的XAML编辑器会标记发生此类型绑定的所

对于我们的WPF应用程序,我设计了一个CustomControl来模拟一些类似弹出的行为。弹出按钮基本上只包含一个
框架元素
,它保存放置在弹出按钮内的内容

当然,放置在弹出按钮的
FrameworkElement
中的控件会绑定到其他控件。然而,我感到困惑,因为这会导致几个问题:

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

  • VisualStudio的XAML编辑器会标记发生此类型绑定的所有行,并且错误列表会为每次出现的绑定显示“对象引用未设置为对象实例”(设计器视图中不会引发异常)

  • 项目成功构建,并且在运行时所有绑定都能完美工作!除此之外,该弹出按钮是作为UserControl还是CustomControl实现的并不重要

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

    如前所述,一切都在运行时工作。但是,由于多个开发人员正在处理该项目,因此不允许出现任何错误;警告在一定程度上是可以接受的

    我们知道,使用绑定代理(如中提出的)应该/可以解决这个问题。但是,由于当前绑定实际上正在工作,我们希望以其他方式解决设计时问题(甚至可以仅抑制错误消息)


    谢谢你的帮助

    您可以将其作为错误报告提交给MicrosoftIt,这样可以查看弹出按钮的代码以及如何将其放置在XAML中的示例。您是否也可以发布您的目标框架版本?