Я работаю над приложением Silverlight в данный момент. У меня есть несколько datagrids/textblocks, где я использую привязку стандарта для показа значений, некоторые из которых являются датами. например.
<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}"/>
Это связывает прекрасный, но даты всегда показываются американским стилем (m/d/y), тогда как я хочу показать им британский стиль (d/m/y). Я попытался установить культуру с помощью обоих 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
интерфейс, я добавил точку останова на методе Преобразования и параметре CultureInfo, который передается в, en-США, как я изменяю культуру?
В конвертере используйте приведенный ниже код
CultureInfo ci = new CultureInfo("en-GB");
return value.ToString(ci);