如何调试Windows Runtime数据绑定?

15
有哪些技术可以用于调试 Windows Metro 风格应用程序中的数据绑定问题?是否有像 WPF 和 Silverlight 应用程序一样的技术可用,例如以下文档所述:

编辑:我最初询问 WinRT 数据绑定调试技术,以便解决在Metro:为什么从 XAML 绑定到代码后台中定义的属性不起作用?中描述的问题。最终我找到了一个解决方案,但是通过尝试工作正常的解决方案,我没有看到任何消息出现在 Visual Studio 11 输出窗口中,即使我故意拼错属性名称以使其无法找到。似乎 WinRT 应用程序中也没有PresentationTraceSources可用。

4个回答

9
另一种可能的解决方案:
sealed partial class App : Application
{
    public App()
    {
        this.InitializeComponent();
        this.Suspending += OnSuspending;
        DebugSettings.BindingFailed += OnDebugSettingsOnBindingFailed;
    }

    private void OnDebugSettingsOnBindingFailed(object sender, BindingFailedEventArgs args)
    {
        new MessageDialog(args.Message).ShowAsync();
    }
    ...
}

原始来源:http://www.tozon.info/blog/post/2012/07/23/Debugging-WinRTXAML-bindings.aspx

该文章讨论了在WinRT/XAML应用程序中调试数据绑定的问题。作者提供了一些有用的技巧,如启用跟踪日志记录、使用XAML Spy等工具。

对于绑定不起作用的情况,建议检查数据源对象是否正确地实现了INotifyPropertyChanged接口,以及目标属性名称是否正确拼写。

此外,文章还提到了一些常见的错误,例如使用Binding Path时省略DataContext、尝试从非UI线程更新UI等。这些错误可能会导致数据绑定失败。

最后,作者介绍了一些调试工具,如Snoop、Mole和Silverlight Spy,这些工具可以帮助开发人员更轻松地调试和诊断XAML和数据绑定问题。


6
如果您在VS的输出窗口中看到数据绑定错误的跟踪消息,您需要自动获取C++应用程序并打开非托管调试以查看托管应用程序。我们正在努力改进这一方面,但目前,您可以打开它们并查看跟踪输出。

2

你的博客最近几天一直挂着,你把网站搬到别处了吗? - Daniel Trebbien

1

我经常使用即时窗口来跟踪绑定问题。

以下是MSDN对此的说明:

在某些设置配置中,即时窗口会显示首次异常通知。

要在即时窗口中切换首次异常通知,请单击“视图”菜单,然后单击“其他窗口”,再单击“输出”。

右键单击输出窗口的文本区域,然后选择或取消选择“异常消息”。

(实际上,在VS2010中默认设置对我来说已经足够了)

希望这可以帮到你。


终于有机会试一下了。我右键单击了输出窗口,复选框菜单项名为“异常消息”被选中,但当我故意拼错属性名称时没有任何输出。 - Daniel Trebbien

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接