2011-01-27 96 views
3

我們正在開發需要多語言支持的WPF & MVVM應用程序。在每個帶有靜態文本的控件上,我們使用一個轉換器來查找用戶語言的適當單詞。在設計時綁定到WPF標籤,按鈕等?

但是,這意味着每個控件不顯示任何文本。這在設計時會給UI開發人員帶來一些刺激。有什麼方法可以顯示設計時間文本嗎?

例如:

 <TextBlock> 
      <TextBlock.Text> 
       <Binding Converter="{StaticResource Translator}" 
         Path="Controller" 
         ConverterParameter="Search for" /> 
      </TextBlock.Text> 
     </TextBlock> 

我怎樣才能讓這個轉換器執行在設計時顯示翻譯器參數?

回答

1

首先,我建議你使用markup extension。那麼你的標記看起來是這樣的:

<TextBlock Text="{my:Localize Key=MyLabel, Default='The text you want to be displayed by default'}" .../> 

默認文本也將顯示在混合。

其次,只要轉換器返回有效的默認文本,我就不會看到轉換器方法的問題。換句話說,轉換器應該在設計時間和運行時間內執行。

+0

你能澄清嗎?標記擴展是一個相當廣泛的主題。我在上面的編輯代碼中使用了標記擴展。所有綁定都是標記擴展。我怎樣才能使設計時執行轉換器? – Daniel 2011-01-28 15:32:54