Questa domanda sembra molto simile a previous, ma il caso è leggermente diverso (forse è meglio dimostrare il problema), sebbene l'obiettivo sia lo stesso.Non si rompono durante il debug
XAML:
<TextBox Text="{local:ExceptionBinding Path=Color1}" />
cs:
public class ExceptionBinding : Binding
{
public ExceptionBinding()
{
ValidationRules.Add(new ExceptionValidationRule());
}
}
vm:
Color _color1;
public string Color1
{
get { return (new ColorConverter()).ConvertToString(_color1); }
set { _color1 = (Color)ColorConverter.ConvertFromString(value); }
}
Quando questo codice viene eseguito stand-alone, per l'ingresso 123
bordo rosso viene mostrato intorno TextBox
(campo il valore non sta cambiando). Immissione red
o #FF0000
rimuoverà il bordo e aggiornerà il valore del campo.
Problema: quando si esegue il programma in Visual Studio, entrando 123
getterà a ConvertFromString
(undocumented btw):
Un'eccezione di tipo 'System.FormatException' avvenuto in PresentationCore.dll, ma non è stata gestita nel codice utente
Ulteriori informazioni: Token non è valido.
Come impedire a Visual Studio di interrompere l'esecuzione del programma?
se stai ricevendo un'eccezione in Visual Studio, lo sono anche i tuoi utenti. se si desidera continuare a programmare l'esecuzione, basta premere F5 (o il pulsante di riproduzione della freccia verde su VS) per continuare a programmare l'esecuzione. – user1666620
@ user1666620, non è l'errore, vorrei evitare l'interruzione dell'esecuzione. – Sinatr
ho aggiornato il mio commento mentre rispondevi. – user1666620