I have an App, which is based for India, and I'm setting Culture as:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-IN");
The above code is being set before the Window - InitializeComponent method is called.
Still this is showing $ as CurrencySymbol in all the TextBox.
If I bind the TextBox as following, it shows 'Rs.' as CurrencySymbol:
Text="{Binding Salary,Mode=TwoWay,StringFormat=C,ConvertCulture=en-IN}".
It is working for me, add this to your app.xaml.cs file startupmethod
For me just works, if i put this code to the OnStartup overrided method:
This will switch the default language for the entire application. You’ll want to use this only in startup code as this setting can be applied only once per application. You can still override individual forms when necessary as below
Reference
I think you will need to add the following.
Read more here:
http://www.west-wind.com/weblog/posts/2009/Jun/14/WPF-Bindings-and-CurrentCulture-Formatting
Just to give you an example, this is how I initialize the Culture in my program, based on the user setting, but you can simply replace
UserSettings.DefaultCulture
andUserSettings.Default.UICultrue
with your wanted Culture.