繁体   English   中英

如何在 XAML (Silverlight) 中以编程方式设置 TextBox 文本

[英]How can I set a TextBox text programmatically in XAML (Silverlight)

我的 XAML 中的 DataTemplate 中有一个 TextBox:

    <DataTemplate x:Key="aproved" >
        <StackPanel Orientation="Vertical" Width="70" Height="70" VerticalAlignment="Center" HorizontalAlignment="Center"  >
            <Image Source="/PF;component/Images/checked_checked.png" Width="50" Height="50"></Image>
            <TextBlock Name="tbAproved" HorizontalAlignment="Center" Text="Aproved" />               
        </StackPanel>
    </DataTemplate>

我想使用我的翻译器类 (LanguageManager) 翻译 TextBlock 中的文本“Aproved”,该类负责从我的资源文件中获取字符串:

public class LanguageManager {
    public static String GetString(String resourceName) {
        if (Singleton.Instance().IdLanguage == 2) {
            return ResourceEnglish.ResourceManager.GetString(resourceName);
        } else {
            return ResourcePortuguese.ResourceManager.GetString(resourceName);
        }
    }
}

所以在我的文本框中,我试图做这样的事情:

<TextBlock Name="tbAproved" HorizontalAlignment="Center" Text="LanguageManager.GetString('resourceName')"/>

从我的类中直接获取字符串并传递带有资源名称的参数。

我正在使用 Silverlight 4。

有没有办法做到这一点? 我必须在我的代码中做一些完全不同的事情吗?

你可以像这样简单地做到这一点:

tbApproved.Text = LanguageManager.GetString("resourceName");

如果您想在 XAML 中使用绑定(推荐):

<DataTemplate x:Key="aproved" >
    <StackPanel Orientation="Vertical" Width="70" Height="70" VerticalAlignment="Center" HorizontalAlignment="Center"  >
        <Image Source="/PF;component/Images/checked_checked.png" Width="50" Height="50"></Image>
        <TextBlock Name="tbAproved" HorizontalAlignment="Center" Text="{Binding ApprovedLabel}" />               
    </StackPanel>
</DataTemplate>

将 DataContext 设置为具有 ApprovedLabel 属性的视图模型:

    public string ApprovedLabel
    {
        get {return LanguageManager.GetString("resourceName");}
        set {}
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM