如何在 XAML (Silverlight) 中以编程方式设置 TextBox 文本
Posted
技术标签:
【中文标题】如何在 XAML (Silverlight) 中以编程方式设置 TextBox 文本【英文标题】:How can I set a TextBox text programmatically in XAML (Silverlight) 【发布时间】:2020-05-26 03:55:53 【问题描述】:我的 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 中的文本“已批准”,该类负责从我的资源文件中获取字符串:
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。
有没有办法做到这一点?我必须在我的代码中做一些完全不同的事情吗?
【问题讨论】:
【参考方案1】:你可以这么简单:
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
【讨论】:
以上是关于如何在 XAML (Silverlight) 中以编程方式设置 TextBox 文本的主要内容,如果未能解决你的问题,请参考以下文章
将 WPF XAML 代码移植到 Silverlight XAML 代码
如何获取适用于 C# 的 Windows Compact 2013 的 Silverlight 或 XAML?