WPF converters: where does the culture come from
Question
I've created a WPF converter class:
public class DoubleConverter : IValueConverter
{
public object Convert(object value, Type TargetType, object parameter, CultureInfo culture)
{
//blah blah
}
}
I wonder who sets the culture parameter that is passed. I would expect it to be the same as the current windows settings, but it appears to be different.
Anyone?
Solution
This page describes a bug (feature?) of WPF where culture will always be en-US unless you take action to specify otherwise and how to fix it.
OTHER TIPS
Actually, using the technique described on that page is a bad idea -- it doesn't take into account any customisations that the user has made to their formatting settings in the Control Panel.
Instead, just ignore the culture parameter passed in to the converter entirely; if you need to pass a culture on to something else, use CultureInfo.CurrentCulture. (Since this is the default for Parse and ToString, you usually don't need to pass it on anyway.)