2011-01-03 18 views
5

Si se produce un error de expresión de enlace durante la depuración, el error se registra en la ventana de resultados en Visual Studio. Se parece a esto:Excepción de error de expresión de enlace

System.Windows.Data Error: BindingExpression path error: 'User' property not found 
on 'MainPageVM' 'MainPageVM' (HashCode=38694667). BindingExpression: Path='User.FullName' 
DataItem='MainPageVM' (HashCode=38694667); target element is 'System.Windows.Controls.TextBlock' 
Name=''); target property is 'Text' (type 'System.String').. 

¿Hay alguna manera de tratar este error como una excepción no controlada en su lugar? No quiero que mi aplicación Silverlight continúe ejecutándose si se produce un error de enlace.

Respuesta

2

Puede detectar los errores de seguimiento.
(El oyente debe estar en DLL externa.)

namespace CustomTracer 
{ 
    public class CustomTraceListener : TraceListener 
    { 
     public CustomTraceListener() 
     { 
     } 

     public override void Write(string message) 
     { 
     } 

     public override void WriteLine(string message) 
     { 
      if(Debugger.IsAttached) 
       Debugger.Break(); 
     } 
    } 
} 

añadir esto a App.config

<system.diagnostics> 
    <sources> 
     <source name="System.Windows.Data" switchName="OnlyErrors" > 
     <listeners> 
      <add name="textListener" type="CustomTracer.CustomTraceListener,CustomTracer"/> 
     </listeners> 
     </source> 
    </sources> 
    <switches> 
     <add name ="OnlyErrors" value ="Error"/> 
    </switches> 
    </system.diagnostics> 
+0

que no trabaja para Silverlight. Sin clase TraceListener ... –

+0

@KonstantinSalavatov http://forums.silverlight.net/t/65524.aspx/1 – Avram

+0

Para Avram: actualmente Silverlight no es posible (SL5) –

Cuestiones relacionadas