En mi aplicación MVVM Silverlight 4, i puede cambiar de idioma en tiempo de ejecución:Silverlight ValidatesOnException mensaje predeterminado localización
public void SetLanguage(string language)
{
var culture = new CultureInfo(language);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
// ...
}
Para las entradas, me acaba de agregar "ValidatesOnException = true" en caso de problemas de conversión y lo hace el trabajo. Pero el mensaje de excepción predeterminado está en la cultura de mi sistema operativo y no en el elegido manualmente.
En este hilo en exception message localization la idea es cambiar CurrentCulture y CurrentUICulture, lo que hice. Así que estoy algo atrapado.
¿Qué puedo hacer?
Gracias :)
Edit: He intentado utilizar un convertidor de medida con una excepción personalizada en el método ConvertBack con el fin de validar la entrada del usuario. Problema, una excepción dentro de un método de conversión NO es captada por validatesOnException, rompe la aplicación.
Editar 2: para aclarar -> si tengo una propiedad de decimal vinculada a un cuadro de texto, y escribo "blabla" en este cuadro de texto, quiero ver que hay un problema, y quiero que el mensaje esté en la configuración regional de tiempo de ejecución y no la configuración regional del sistema operativo. No puedo generar una excepción en mi conjunto de propiedades porque nunca llego allí, el convertidor predeterminado levanta su propia excepción antes de eso.
Espero que esté claro. Si puedo ayudarlo a ayudarme, no dude :)
no quiero establecer el idioma en el constructor, quiero poder cambiarlo en tiempo de ejecución. Esto no aplica, este.lenguaje es un conjunto privado. –
El hecho de que esté en el constructor no significa que no pueda en el tiempo de ejecución.Usa un constructor parametrizado e incluye la lógica similar al método SetLanguage que has usado –