2012-06-01 21 views
9

在Silverlight 5 beta I could debug databinding directly in XAML中。 Visual Studio 2012(RC)中的此功能在哪里?我可以用WPF,WinRT和/或Silverlight做到这一点吗?如果是这样如何?当我在绑定表达式应用程序上设置一个断点时,我得到这样一条消息,即不会触发断点,因为没有源代码与此行关联。在Visual Studio 2012中调试XAML数据绑定

更新:

它工作在Visual Studio 2012(RC)为Silverlight 5应用程序而不是WPF应用程序。请不要告诉我,WPF不存在此功能!

+1

我在RTM版本的Visual Studio 2012中遇到同样的问题。请参见[此问题](http://stackoverflow.com/questions/12067841/no-xaml - 结合-调试与 - 断点功能于视觉工作室-2012-RTM-上窗口)。 – marcslogic

+0

winrt/Window 8呢? – swinefeaster

回答

16

不好意思告诉你,但是这个功能不是不存在于WPF XAML中,也不存在于WinRT XAML中。我找不到WPF的正式源代码,但这是WinRT的一个官方源代码(http://social.msdn.microsoft.com/Forums/en-US/toolsforwinapps/thread/fae53937-cb47-45da-b740-49f75f8d36e9/),他非常强烈地暗示,这是纯粹由Silverlight团队领导的努力,并且可能在未来的WPF和WinRT版本中预期。

到目前为止是我见过的最好的调试技术如下:

1)的WinRT & WPF:输出窗口 使用启用了正确的选项输出窗口,确保工具 - >选项> Debugging->输出窗口 - >数据绑定= “警告” 或其他有用的东西......

enter image description here

2)的WinRT & WPF:使用转换器 使用转换器并在转换器内设置断点。或者你也可以建立/使用类似的WinRT XAML工具包怎么做了:http://winrtxamltoolkit.codeplex.com/.../WinRTXamlToolkit.Debugging/Converters/BindingDebugConverter.cs

3)的WinRT:使用DebugSettings.BindingFailed

App.Current.DebugSettings.IsBindingTracingEnabled = true; 
App.Current.DebugSettings.BindingFailed += (s, e) => 
{ 
    // debug the failed binding here 
}; 

看到:http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.debugsettings.bindingfailed了解更多信息

4)WPF:使用PresentationTraceSources.TraceLevel附加属性 为您提供详细的绑定输出,请参阅:http://msdn.microsoft.com/en-us/library/system.diagnostics.presentationtracesources.tracelevel.aspx了解更多信息。

我意识到这是一个较老的问题,但是我找不到任何XAML的好消息来源,在搜索引擎中找到了这个答案,并且发现它仍然没有答案。技术上来说,XAML的3个版本都以相同的名字命名,这并没有帮助。所以这里是我在调试绑定时发现的所有东西的转储。享受,希望它可以帮助别人... -ck