设计时如何绑定 WPF 标签、按钮等控件?

3
我们正在开发一款需要支持多语言的WPF和MVVM应用程序。在每个包含静态文本的控件上,我们使用转换器来查找用户语言的适当单词。
然而,这意味着每个控件都不显示任何文本。这会在设计时对UI开发人员造成一些烦恼。有没有办法显示设计时文本?
例如:
        <TextBlock>
          <TextBlock.Text>
              <Binding Converter="{StaticResource Translator}"
                       Path="Controller"
                       ConverterParameter="Search for" />
          </TextBlock.Text>
        </TextBlock>

我该如何使此转换器在设计时执行,以显示已翻译的转换器参数?
1个回答

1
首先,我建议您使用标记扩展。然后,您的标记将类似于这样:
<TextBlock Text="{my:Localize Key=MyLabel, Default='The text you want to be displayed by default'}" .../>

默认文本也会在 Blend 中显示。

其次,只要转换器返回有效的默认文本,我就不认为它存在问题。换句话说,转换器应该在设计时和运行时都执行。


你能澄清一下吗?标记扩展是一个非常广泛的主题。我正在上面编辑中的代码中使用标记扩展。所有绑定都是标记扩展。我如何使转换器在设计时执行? - Daniel
转换器应该在设计时执行。我猜你的问题在于,在设计时数据上下文没有设置为正确的对象,因此无法解析“Controller”路径。 - Pavlo Glazkov
控制器对象是包含上述TextBlock的视图的ViewModel的属性,并且直到运行时才被实例化。 - Daniel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接