conversores WPF: onde é que a cultura vêm de
Pergunta
Eu criei uma classe de conversor WPF:
public class DoubleConverter : IValueConverter
{
public object Convert(object value, Type TargetType, object parameter, CultureInfo culture)
{
//blah blah
}
}
Eu quero saber quem define o parâmetro cultura que é passado. Eu esperaria que ele seja o mesmo que as configurações atuais do Windows, mas parece ser diferente.
Qualquer um?
Solução
Esta página descreve um (recurso?) bug de WPF onde a cultura será sempre en-US se você não agir para especificar o contrário e como corrigi-lo.
Outras dicas
Na verdade, usando a técnica descrita em essa página é uma má idéia -. ele não leva em conta quaisquer personalizações que o usuário fez às suas configurações de formatação no painel de controle
Em vez disso, simplesmente ignorar o parâmetro de cultura passado para o conversor inteiramente; se você precisa passar uma cultura para outra coisa, utilize CultureInfo.CurrentCulture. (Uma vez que este é o padrão para analisar e ToString, você geralmente não precisa passá-lo de qualquer maneira.)