c# - 如何在 XAML (Silverlight) 中以编程方式设置 TextBox 文本
问题描述
我的 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 {}
}
推荐阅读
- python - Pytest Mock socket.socket.connect 函数
- html - 为什么不显示旋转元素?
- python - 当我在 Python 中运行 SQL MERGE 语句时,如何知道哪些记录会导致问题
- itext7 - 如何创建在用户指定位置具有单元格的 itext 表
- javascript - 如何将对象作为参数传递给需要三个参数的函数?
- java - 有没有办法重新映射 Android 键盘上的键以触发麦克风?
- sql-server - 未优化内存的表上的架构绑定视图和索引
- ssl - 如何将 SSL 密钥记录到 gstreamer 管道中的文件以供将来解密
- sql - 如何将具有相同外键的计算字段组合起来?
- flutter - 有没有办法从不断更新的单个文件访问来自 BLE 设备的数据?