C# 在codebehind中使用Multibinding.StringFormat
我有一个内置动态语言切换的应用程序。根据选定的区域性,整个应用程序中的字符串将发生更改。翻译后的字符串及其原始值来自资源文件。我使用绑定将资源值附加到按钮、标签等。大多数绑定发生在代码隐藏中 我已经能够使用Binding.StringFormat属性将本地化字符串与数据连接起来:C# 在codebehind中使用Multibinding.StringFormat,c#,wpf,code-behind,multibinding,string-formatting,C#,Wpf,Code Behind,Multibinding,String Formatting,我有一个内置动态语言切换的应用程序。根据选定的区域性,整个应用程序中的字符串将发生更改。翻译后的字符串及其原始值来自资源文件。我使用绑定将资源值附加到按钮、标签等。大多数绑定发生在代码隐藏中 我已经能够使用Binding.StringFormat属性将本地化字符串与数据连接起来: mybinding.StringFormat = "# {0}"; 用于“#个项目”。我的问题是,我现在需要在代码隐藏中连接两个(或更多)本地化字符串。我很快意识到我可以使用多重绑定并将我的绑定添加到其中,以保持当前
mybinding.StringFormat = "# {0}";
用于“#个项目”。我的问题是,我现在需要在代码隐藏中连接两个(或更多)本地化字符串。我很快意识到我可以使用多重绑定并将我的绑定添加到其中,以保持当前的工作方式,但是,使用MultiBinding.StringFormat似乎不起作用。我试图使用myMultiBinding.StringFormat=“{0}{1}”
在两个绑定值之间插入一个空格,但当绑定到“问候语”标签时,该空格仅显示为空
下面是GetBinding()函数,它根据路径值获取绑定:
public Binding GetBinding(string name)
{
Binding binding = new Binding();
binding.Source = mySource;
binding.Path = new PropertyPath(name);
return binding;
}
另外,我应该注意我使用的是.NET4。在Xaml中似乎也不起作用。在.NET3.5中,在4.0中不起作用后,我也尝试过这个。两个子绑定都在工作。。。如果我提供一个转换器,值就会显示出来。不过,我宁愿使用StringFormat属性。标签有问题。TextBlock上的StringFormat似乎工作正常
public Binding GetBinding(string name)
{
Binding binding = new Binding();
binding.Source = mySource;
binding.Path = new PropertyPath(name);
return binding;
}