2012-02-02 31 views
0

我试图在SIlverlight中实现本地化。文化在UI中没有得到更新

我按照这个链接,它

http://timheuer.com/blog/archive/2009/08/26/silverlight-string-localization.aspx

现在的问题是,当我硬编码的文化这样

<object> 
    ... 
    <param name="uiculture" value="ar-SA" /> 
    <param name="culture" value="ar-SA" /> 
</object> 

它工作正常,但是当我试图改变通过改变组合框文化,它没有得到更新UI

<param name="uiculture" value="<%= System.Threading.Thread.CurrentThread.CurrentUICulture %>" /> 
<param name="culture" value="<%= System.Threading.Thread.CurrentThread.CurrentCulture %>" /> 

任何机构可以告诉我请它为什么不更新UI ..

+0

你能请详细解释什么不适合你? – 2012-02-02 10:37:17

+0

Silverlight组合框与选定的值绑定存在已知问题。可能是这个链接会帮助你[http://forums.lhotka.net/forums/p/9786/45971.aspx](http://forums.lhotka.net/forums/p/9786/45971.aspx) – 2012-02-02 10:38:14

回答

0

为了文化改变,你需要的Silverlight应用程序将重新加载, 并要做到这一点,你需要包含的页面Silverlight应用程序将被刷新。这意味着您将需要回发到服务器。

我们在我们的应用程序中所做的工作是使用QueryString“导航”到包含选定语言的页面。

代码来创建一个刷新如下:

HtmlPage.Window.Navigate(New Uri(App.Current.Host.Source, "../MainPage.aspx" + "?" + l_newCulture)) 

在您需要更新会话变量或东西,然后用你上面提到的代码在服务器端,但仅代替System.Threading.Thread.Current..,使用包装了会话变量的属性,所以在网页它看起来就像这样:

<param name="uiculture" value="<%= SelectedCurrentUICulture %>" /> 
<param name="culture" value="<%= SelectedCurrentCulture %>" 

好运 利奥尔