2010-06-11 8 views
0

Мое приложение Silverlight, включенное в RIA, устанавливает культуру потока в конструкторе приложения (это абсолютно верно, поскольку это приложение для интрасети и никогда не будет использоваться кем-то, кто не является немцем):Изменение спонтанной культуры Silverlight (RIA Services)

public App() { 
    InitializeComponent(); 
    Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE"); 
} 

Он делает то, что должен, DataForms отображает значения datetime в немецкой нотации. НО: он спонтанно меняется на en-US notation при навигации между элементами в источнике данных, привязанным к DataForm. Зачем?

ответ

0

Кажется, что культура нитей не наследуется каждым элементом управления. Просто для удовольствия я отобразил Язык элемента управления, и он был установлен равным en-US. Чтобы решить эту проблему, я жестко закодировал язык de-DE в стиле DataForm.

Та же проблема была described by Hannes (in german). Удивительно, но в этом случае все было наоборот: DataForm был немецкий, но сетка была английской.

0

Как сказал Марк Wittke, культура нить не наследуется каждым контролем (почему на земле ???)

В любом случае, вам не нужно жёстко значения, это поместить эту строку в конструкторе Control :

Язык = XmlLanguage.GetLanguage (CultureInfo.CurrentCulture.Name);

И вы контролируете использование CurrentCulture.

Cheers,

Андре

Смежные вопросы