gpt4 book ai didi

c# - 在代码隐藏中使用 Multibinding.StringFormat

转载 作者:太空宇宙 更新时间:2023-11-03 14:26:16 25 4
gpt4 key购买 nike

我有一个内置动态语言切换的应用程序。根据所选的文化,整个应用程序中的字符串都会发生变化。翻译后的字符串及其原始值来自资源文件。我使用绑定(bind)将资源值附加到按钮、标签等。大部分绑定(bind)发生在后面的代码中。

我已经能够使用 Binding.StringFormat 属性将本地化字符串与数据连接起来:

mybinding.StringFormat = "# {0}";

对于“# of items”。我的问题是我现在需要在后面的代码中连接两个(或更多)本地化字符串。我很快意识到我可以使用 MultiBinding 并将我的绑定(bind)添加到它,与当前的工作方式保持一致,但是,使用 MultiBinding.StringFormat 似乎不起作用。我正在尝试使用 myMultiBinding.StringFormat = "{0} {1}"; 在两个绑定(bind)值之间插入一个空格,但当绑定(bind)到“Greetings”标签时它只是显示为空白。

Binding b = GetBinding("HelloWorld");   
Binding b2 = GetBinding("Name");

MultiBinding multib = new MultiBinding();
multib.StringFormat = "{0} {1}";
multib.Bindings.Add(b);
multib.Bindings.Add(b2);
Greetings.SetBinding(Label.ContentProperty, multib);

这里是 GetBinding() 函数,它根据路径值获取绑定(bind):

public Binding GetBinding(string name)
{
Binding binding = new Binding();
binding.Source = mySource;
binding.Path = new PropertyPath(name);
return binding;
}

此外,我应该注意到我使用的是 .NET 4。在 Xaml 中似乎也不起作用。我也在 .NET 3.5 中尝试过它,因为它在 4.0 中不起作用。两个子绑定(bind)都在工作......如果我提供一个转换器,就会显示这些值。不过,我宁愿使用 StringFormat 属性。

最佳答案

关于c# - 在代码隐藏中使用 Multibinding.StringFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3875448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com