2011-01-27 99 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