Я работаю над приложением Silverlight на данный момент. У меня есть несколько datagrids/textblocks, где я использую стандартную привязку для отображения значений, некоторые из которых являются датами. напримерИзменить культуру приложения Silverlight
<sdk:DataGrid AutoGenerateColumns="False" IsReadOnly="True" ItemsSource="{Binding Path=MyCollection}">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Binding="{Binding Path=Name, Mode=OneWay}" Header="Agent"/>
<sdk:DataGridTextColumn Binding="{Binding Path=UpdateTime, Mode=OneWay}" Header="Update Time"/>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
<TextBlock Text="{Binding Path=LastUpdatedTime}"/>
Это связывает штраф, но даты всегда отображаются в виде типа США (м/д/у), в то время как я хочу, чтобы показать им Великобритания стиль (d/м/г). Я попытался установить культуру, используя как HTML-теги на странице хостинга приложения
<param name="uiculture" value="en-GB" />
<param name="culture" value="en-GB" />
и на Application_Start
моего Silverlight приложения
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-GB");
, но ни один из них никакой разницы. У меня есть пользовательский класс, который реализует интерфейс IValueConverter
, я добавил точку останова в методе Convert и параметр CultureInfo, который передается в en-US, как мне изменить культуру?
Должен ли я использовать конвертер для каждого DataColumn/TextBlock, который отображает дату? – Fermin
да. Но если вы хотите использовать глобальный, в конструкторе MainPage или использовании Loaded event ниже (здесь нет необходимости в конвертере) CultureInfo en = new CultureInfo («en-GB»); Thread.CurrentThread.CurrentCulture = en; – Ragunathan
Как я уже сказал в своем первом сообщении, я уже пробовал установить CurrentCulture в событии Application_Start и не меняет способ отображения дат. – Fermin