View Issue Details

IDProjectCategoryView StatusLast Update
0002222NoesisGUIUnitypublic2026-07-22 15:24
Reporterasusralis Assigned Tojsantos  
PrioritynormalSeveritytweak 
Status feedbackResolutionopen 
Product Version3.1.2 
Target Version3.2.14 
Summary0002222: Show the XAML line in binding failed error message.
Description

https://i.imgur.com/SQQeV06.png

It would be great to show the exact XAML file and line to easily fix the binding failure. Otherwise, you have to search for the binding.

PlatformAny

Relationships

related to 0001532 assignedjsantos Feature request: DependencyProperty value support on DependencyObject instances in the debugger 
related to 0003032 assignedjsantos Natvis not working / PDBs missing 

Activities

anton.sodergren_pdx

anton.sodergren_pdx

2025-06-12 09:37

reporter   ~0010815

This is something that would also be very helpful to us at Paradox, so we second this request.
We had some additional ideas for this that we have previously discussed in email and on the forum, but I thought I would collect all of it here.

The main idea would be that each element in the UI hierarchy would store metadata about in which XAML file and line it is defined. This might for example be stored in a dependency property or such.

Use cases:

  1. Show XAML file and line in binding errors. This is what is already requested in this ticket. We would like to also extend this error message improvement to errors in converters. This would make it much easier to fix binding errors and converter errors.
  2. Building a tool (similar to the Noesis Inspector) that lets you click on a UI element in the game, which immediately opens the relevant XAML file and line in an editor. This removes all the extra work of having to look around to find where a UI element is defined, and instead lets you immediately get to where you need to be. This would make the overall workflow of working with the UI much smoother. We could build this tool ourselves on top of the metadata, but it could make sense for Noesis to natively have such functionality too.
  3. Finding file and line information in the debugger. When debugging UI code, especially crashes and asserts, it can be difficult to figure out which UI element you're actually looking at in the debugger. It would help a lot if we can see the file and line for a UI element in the debugger. This could possibly be done through Natvis and such, if the metadata exists.

I also want to add that if all the UI elements in the hierarchy has this metadata, then we can visualize what is essentially a call stack, by walking up the hierarchy. This is very useful if a UI element is for example defined inside of a control template, and you need to know the context where the template was instantiated in order to make proper use of the metadata.

Lastly, there are some cases where we create UI elements from code, which means that there's not necessarily a XAML file involved. In these cases we need to be able to manually set the file metadata from code, to something else that is more useful. For example if we're generating UI text inlines from our localization files, we might set this metadata to point to the appropriate place in the localization file.

jsantos

jsantos

2025-12-12 02:09

manager   ~0011605

Last edited: 2025-12-12 10:46

In r16439 there is the first implementation about this task:

  • Objects created from XAML display file information in the debugger (make sure to also update our NatVis file)
  • Binding messages now always include this information when available
  • This feature is ON by default in Debug/Profile and disabled in Release, can be controlled with NS_TRACK_XAML_SOURCE (BuildSettings.h)
anton.sodergren_pdx

anton.sodergren_pdx

2025-12-12 10:36

reporter   ~0011607

Very excited about this update! Thank you!

Issue History

Date Modified Username Field Change
2021-12-31 04:39 asusralis New Issue
2021-12-31 04:41 asusralis Severity feature => tweak
2022-01-02 20:03 jsantos Assigned To => sfernandez
2022-01-02 20:03 jsantos Status new => assigned
2022-01-02 20:04 jsantos Target Version => 3.1.3
2022-02-14 17:50 sfernandez Target Version 3.1.3 => 3.1.4
2022-03-17 21:31 sfernandez Target Version 3.1.4 => 3.1.5
2022-06-24 17:21 sfernandez Target Version 3.1.5 => 3.1.6
2022-11-07 17:14 sfernandez Target Version 3.1.6 => 3.1.7
2024-03-04 15:26 jsantos Target Version 3.1.7 => 3.2.4
2024-06-03 17:20 jsantos Target Version 3.2.4 => 3.2.5
2024-10-24 16:51 sfernandez Target Version 3.2.5 => 3.2.6
2024-11-22 18:18 jsantos Target Version 3.2.6 => 3.2.7
2025-01-20 17:43 jsantos Target Version 3.2.7 => 3.2.8
2025-06-06 12:52 jsantos Target Version 3.2.8 => 3.2.9
2025-06-12 09:37 anton.sodergren_pdx Note Added: 0010815
2025-10-02 00:48 jsantos Target Version 3.2.9 => 3.2.10
2025-10-10 13:29 jsantos Category Unity3D => Unity
2025-10-20 18:25 jsantos Target Version 3.2.10 => 3.2.11
2025-10-30 10:33 jsantos Assigned To sfernandez => jsantos
2025-11-30 12:17 jsantos Relationship added related to 0001532
2025-12-12 02:09 jsantos Note Added: 0011605
2025-12-12 02:09 jsantos Status assigned => feedback
2025-12-12 02:11 jsantos Relationship added related to 0003032
2025-12-12 02:14 jsantos Note Edited: 0011605
2025-12-12 02:14 jsantos Note Edited: 0011605
2025-12-12 02:14 jsantos Note Edited: 0011605
2025-12-12 02:15 jsantos Note Edited: 0011605
2025-12-12 10:36 anton.sodergren_pdx Note Added: 0011607
2025-12-12 10:46 jsantos Note Edited: 0011605
2026-01-20 19:32 jsantos Target Version 3.2.11 => 3.2.12
2026-01-20 19:51 jsantos Target Version 3.2.12 => 3.2.11
2026-01-20 19:52 jsantos Target Version 3.2.11 => 3.2.12
2026-03-04 00:39 jsantos Target Version 3.2.12 => 3.2.13
2026-04-27 12:16 jsantos Target Version 3.2.13 => 3.2.14