ich im Moment auf eine Silverlight-Anwendung arbeite. Ich habe ein paar Datagrids/Textblöcke, wo ich Standard-Bindung verwenden, um Werte zu zeigen, von denen einige Daten sind. z.B.ändert Kultur von Silverlight-Anwendung
<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}"/>
Dies bindet in Ordnung, aber die Daten werden immer als US-Stil (m/d/y) gezeigt, während ich sie in Großbritannien Stil (d/m/y) zeigen möge. Ich habe versucht, die Kultur auf der Seite sowohl die HTML-Tags mit Einstellung des Anwendungs-Hosting
<param name="uiculture" value="en-GB" />
<param name="culture" value="en-GB" />
und auf Application_Start
meine Silverlight-Anwendung
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-GB");
aber keiner von ihnen macht einen Unterschied. Ich habe eine benutzerdefinierte Klasse, die IValueConverter
Schnittstelle implementiert, ich habe einen Haltepunkt für die Convert-Methode hinzugefügt und der CultureInfo-Parameter, der übergeben wird, ist en-US, wie ändere ich die Kultur?
Würde ich brauche einen Konverter für jede Datacolumn/TextBlock- zu verwenden, die ein Datum anzeigt? – Fermin
ja. Aber wenn Sie wollen global verwenden, in dem Mainpage-Konstruktor oder Loaded-Ereignis Verwendung unten (keine Notwendigkeit für Konverter hier) Culture en = new Culture („en-GB“); Thread.CurrentThread.CurrentCulture = de; – Ragunathan
Wie ich in meinem ersten Post gesagt habe, habe ich bereits versucht, die CurrentCulture im Application_Start-Event zu setzen und es ändert sich nicht, wie die Daten angezeigt werden. – Fermin