10

在 Silverlight 5 beta中,我可以直接在 XAML 中调试数据绑定。Visual Studio 2012 (RC) 中的此功能在哪里?我可以使用 WPF、WinRT 和/或 Silverlight 执行此操作吗?如果有怎么办?当我在绑定表达式应用程序上设置断点时,我收到一条消息,即不会命中断点,因为没有源代码与此行关联。

更新:

它适用于 Silverlight 5 应用程序的 Visual Studio 2012 (RC),但不适用于 WPF 应用程序。请不要告诉我,WPF 不存在此功能!

4

1 回答 1

17

很抱歉告诉您,但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: 输出窗口 使用启用了正确选项的输出窗口,确保 Tools->Options->Debugging->Output Window->Data Binding = "Warning" 或其他有用的东西...

在此处输入图像描述

2) WinRT & WPF: Use a converter 使用转换器并在转换器内部设置一个断点。或者您可以构建/使用类似于 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 的良好信息来源,在搜索引擎上找到了这个答案,并注意到它仍然缺乏答案。从技术上讲,有 3 个版本的 XAML 使用相同的名称并没有帮助。所以这是我在调查调试绑定时发现的所有内容的转储。享受,希望它可以帮助某人...... -ck

于 2013-04-05T15:34:04.203 回答