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?

È stato utile?

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.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top