Is there any way to effectively debug WPF data bindings?

前端 未结 5 1567
别跟我提以往
别跟我提以往 2021-02-13 16:18

I am having a data binding problem (a separate question), and normally when I code, I can use the debugger to step through, and hit break points. What is probably a simple issu

相关标签:
5条回答
  • 2021-02-13 16:30

    I have no idea if VS provides an easy way to debug bindings, but I usually use Snoop for debugging bindings

    It's a tool that will go through a WPF application and give you a TreeView of the application's Visual Tree. You can select an element to view its DataContext and other properties. If there are any binding errors, the property is usually highlighted and it will say what the error was. If the binding is failing because the property doesn't exist, I can usually trace the DataContext and figure out where I went wrong in my binding.

    0 讨论(0)
  • 2021-02-13 16:37

    add a dummy converter

    <local:DebuggerConverter x:Key="DebuggerConverter" />
    
    <TextBlock Text={Binding ToSomething, Converter={StaticResource DebuggerConverter}} />
    

    the converter

    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
    }
    

    or use this and look at your output window

    <Window xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase">
      <TextBlock Text="{Binding ToSomething, diagnostics:PresentationTraceSources.TraceLevel=High}" />
    </Window>
    

    hope this helps

    0 讨论(0)
  • 2021-02-13 16:44

    You can get some basic information about binding errors in the Output Window in Visual Studio. It will show the binding expression path error and the line on which the error occured.

    0 讨论(0)
  • 2021-02-13 16:47

    When i started with WPF, this is the major issue which i faced to debug my bindings. Everytime looking at Output window and searching for your binding seems cumbersome for very big applications. Then i came across this excellent article with detailed understanding of Bindings - http://bea.stollnitz.com/blog/index.php?s=presentationtrace

    Hopefully, this might help you too... :)

    0 讨论(0)
  • 2021-02-13 16:50

    Add a dummy value converter to your binding. Put a breakpoint inside the value converter. Also check debug output window in Visual Studio for any binding errors.

    0 讨论(0)
提交回复
热议问题