我遇到了数据绑定问题(一个单独的问题),通常在我编写代码时,我可以使用调试器逐步执行,然后点击断点。可能一个简单的问题花了我一整天,没有解决方案(现在变得非常沮丧),因为我不知道如何在我的XAML数据绑定上“运行调试器”。
如果有人能解释如何做到这一点,我们将不胜感激。
答案 0 :(得分:8)
我不知道VS是否提供了一种调试绑定的简单方法,但我通常使用Snoop来调试绑定
这是一个通过WPF应用程序并为您提供应用程序Visual Tree的TreeView的工具。您可以选择一个元素来查看它的DataContext和其他属性。如果存在任何绑定错误,则通常会突出显示该属性,并说明错误是什么。如果绑定失败,因为该属性不存在,我通常可以跟踪DataContext并找出我在绑定中出错的地方。
答案 1 :(得分:3)
添加虚拟转换器
<local:DebuggerConverter x:Key="DebuggerConverter" />
<TextBlock Text={Binding ToSomething, Converter={StaticResource DebuggerConverter}} />
转换器
public class DebuggerConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// Set breakpoint here
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// Set breakpoint here
return value;
}
#endregion
}
或使用它并查看输出窗口
<Window xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase">
<TextBlock Text={Binding ToSomething, diagnostics:PresentationTraceSources.TraceLevel=High" />
</Window>
希望这会有所帮助
答案 2 :(得分:1)
为绑定添加虚拟值转换器。在值转换器中放置一个断点。还要检查Visual Studio中的调试输出窗口是否存在任何绑定错误。
答案 3 :(得分:1)
您可以在Visual Studio的“输出”窗口中获取有关绑定错误的一些基本信息。它将显示绑定表达式路径错误和发生错误的行。
答案 4 :(得分:1)
当我开始使用WPF时,这是我调试绑定时面临的主要问题。每次查看“输出”窗口并搜索绑定对于非常大的应用程序来说都很麻烦。然后我偶然发现了这篇优秀的文章,详细了解了Bindings - http://bea.stollnitz.com/blog/index.php?s=presentationtrace
希望这也可以帮助你......:)