Convertitori WPF: da dove viene la cultura
Domanda
Ho creato una classe di convertitore WPF:
public class DoubleConverter : IValueConverter
{
public object Convert(object value, Type TargetType, object parameter, CultureInfo culture)
{
//blah blah
}
}
Mi chiedo chi imposta il parametro cultura che viene passato. Mi aspetto che sia lo stesso delle attuali impostazioni di Windows, ma sembra essere diverso.
Chiunque?
Soluzione
Questa pagina descrive un bug (caratteristica?) di WPF in cui la cultura sarà sempre en-US a meno che non si intraprenda un'azione per specificare diversamente e come risolverlo.
Altri suggerimenti
In realtà, usando la tecnica descritta in quella pagina è una cattiva idea: non tiene conto delle personalizzazioni che l'utente ha apportato alle proprie impostazioni di formattazione nel Pannello di controllo.
Invece, ignora semplicemente il parametro di cultura passato interamente al convertitore; se hai bisogno di passare una cultura a qualcos'altro, usa CultureInfo.CurrentCulture. (Poiché questo è il valore predefinito per Parse e ToString, di solito non è necessario passarlo comunque.)