【问题标题】:Bind method result to a Silverlight XAML TextBlock将方法结果绑定到 Silverlight XAML TextBlock
【发布时间】:2013-06-11 15:30:46
【问题描述】:

我有一个函数,给定一个字符串,返回翻译成德语的字符串,链接到我要编辑的 xaml:

public string convert (string label) {
    return Translator.translate (label);
}

然后,此字符串用于在 Silverlight 中使用 TextBlocks 标记我的界面的某些部分。这是我的代码的一个示例 TextBlock:

 <TextBlock Text="Center" Grid.Column="0" Grid.Row="0"  HorizontalAlignment="Right" />

我希望修改“文本”属性以调用转换,将文本“中心”作为参数传递,并将返回结果显示为文本。有什么办法吗?

问候

【问题讨论】:

    标签: c# silverlight xaml methods


    【解决方案1】:

    您可以将其设为转换器并将其应用于 TextBlock 之类的绑定库;

    <TextBlock Text="{Binding Text, 
                      Converter={StaticResource YourTranslatorConverterThingy}}"/>
    

    这里只是一个article,并提供了更多解释。希望这会有所帮助。

    【讨论】:

    • 使用您的解决方案,我是否需要定义一个名为 Text 的属性?如果是这样,我希望尽可能避免这种情况。
    • 不,您可以根据自己的喜好制作任何内容,以反馈您的内容。它只是填充TextBlockText
    • 是的,但是...如何将字符串“Center”从 XAML 传递给该转换器?
    • 哈,好点子!刚刚意识到我们谈论的是TextBlock 而不是TextBox,这意味着无论如何您都需要静态地传递内容,然后在后面进行转换。如果它本来是一个静态字段,为什么不让它从德语开始呢?或者,如果我们谈论的是本地化,为什么不直接进行实际的本地化呢? - msdn.microsoft.com/en-us/library/cc838238%28v=vs.95%29.aspx
    • 哦,如果您决定不进行实际本地化,您也可以在TextBlock 上使用CallMethodAction 来完成您最初要求的操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 2012-08-06
    • 1970-01-01
    • 2012-02-12
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多