我正在使用MvvmCross在Xamarin制作Android应用程序。
我的用户界面有一个搜索字段和一个按钮。我希望按钮能反映搜索字段中的内容。因此,如果搜索字段为SearchResponse response = client.prepareSearch("mongoindex")
.setSearchType(SearchType.QUERY_AND_FETCH)
.setQuery(boolQuery)
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();
,我希望按钮说出Alamo Drafthouse
,但Create "Alamo Drafthouse" Venue
字符串应来自Create "x" Venue
文件,以便可以对其进行本地化。< / p>
我目前的攻击计划是创建一个ValueConverter,它接受搜索词并进行格式化,使用ConvertParameter指定字符串资源的ID,所以我可以这样做:
strings.xml
其中<Button local:MvxBind="Text SearchTerm, Converter=FormatResource, ConvertParameter='create_view'" />
是create_view
中定义的字符串资源。
我想我应该问是否有更好的方法来做到这一点。有吗?
答案 0 :(得分:1)
如果您希望模板字符串来自strings.xml
(来自Android项目,而不是来自Core / PCL项目),您可以创建自己的名为FormatResourceConverter
的转换器。
public class FormatResourceConverter: IMvxValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
//value would be your draft house
//parameter would be a name of your string in strings.xml
var stringValue = ... //get your string from Android string resources
return String.Format(stringValue, value);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Here is a simple answer how to get string from Android resources in Xamarin