У меня довольно стандартная комбинация BindingSource/DataGridView. Свойство bindingSource имеет свойство десятичного типа, которое должно отображаться в DataGridView как валюта. Для теста я хочу посмотреть, что это выглядит, как если бы я использовать информацию культуры, которая использует € в валюте формате вместо £DataGridView не показывает правильную культуруinfo
Моя проблема в том, что, хотя я программно изменить CurrentUICulture текущего потока (Мое приложение имеет только один поток), мой DataGridView по-прежнему показывает £.
Дизайнер создал для меня следующие фрагментов кода:
this.columnPriceValue = new Forms.DataGridViewTextBoxColumn();
this.columnPriceValue.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
this.columnPriceValue.DataPropertyName = "Value";
dataGridViewCellStyle2.Format = "C4";
...
В конструкторе моей главной формы я установить CurrentUICulture голландской культуру в соответствии с StackOverflow ответа How to change CurrentCulture at runtime?
System.Threading.Thread.CurrentThread.CurrentUICulture =
CultureInfo.GetCultureInfo(0x0013);
Поскольку знак GBP все еще отображается. Я проверил валютуSymbol перед добавлением данных в источник привязки:
public void ShowPrices(IEnumerable<Price> prices)
{
string txt = System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.CurrencySymbol;
Debug.WriteLine(txt);
this.bindingSource1.DataSource = prices;
...
Окно выхода отладчика показывает, что € по-прежнему является символом валюты, но DataGridview все еще показывает £.
Что делать, чтобы показать ему знак евро?
Избили меня к нему. +1;) – OhBeWise