当前位置: 首页 > 编程语言 > C#

WindowsPhone8使用格式共享绑定到字符串资源

时间:2023-04-10 21:00:15 C#

WindowsPhone8使用格式绑定到字符串资源我的本地化资源字符串名为TextResource,其值为:Text:{0}。其中{0}是String.Format的占位符。我的用户控件有一个名为Count的DependecyProperty。我想将Count绑定到文本框的文本,但也应用本地化的字符串。因此,文本块的内容为Text:5(假设Count的值为5),我设法弄清楚如何绑定本地化字符串或属性值,但不能同时绑定两者。我如何在XAML中执行此操作?PS:一种选择是添加两个文本块而不是一个,但我不确定这是否是一种好的做法。你有三个选择。第一个选项:修改您的视图模型以显示格式化字符串并绑定到该字符串。publicstringCountFormatted{get{returnString.Format(AppResources.TextResource,Count);}}第二个选项:创建一个转换器MyCountConverter返回String.Format(文化,AppResources.TextResource,值);}publicobjectConvertBack(objectvalue,TypetargetType,objectparameter,System.Globalization.CultureInfoculture){thrownewNotImplementedException();}}...第三个选项:使用可绑定的转换器参数,以便您可以创建一个通用的StringFormat转换器,您可以在其中实际绑定转换器参数。Windows手机不支持此功能,但仍然有效。查看此链接以了解如何执行此操作。但是,除非您使用资源来支持多种语言,否则将格式作为纯字符串传递给转换器要容易得多。在这种情况下,您必须创建一个带有参数的StringFormatConverter转换器。编辑:关于第三个选项,您可以使用上面链接中的IMultiValueConverter来实现您想要的。您可以添加以下转换器:publicclassStringFormatConverter:IMultiValueConverter{publicobjectConvert(object[]values,TypetargetType,objectparameter,System.Globalization.CultureInfoculture){varparam=values[0].ToString();varformat=values[1].ToString();返回String.Format(文化、格式、参数);}publicobject[]ConvertBack(objectvalue,Type[]targetTypes,objectparameter,System.Globalization.CultureInfoculture){thrownewNotImplementedException();我不知道这是否值得付出努力。以上就是C#学习教程:WindowsPhone8使用格式绑定字符串资源共享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: