我有一个像下面这样的静态类:
public static class Lang
{
public static string GetString(string name)
{
//CODE
}
}
现在我想在 xaml 中以绑定(bind)的形式访问这个静态函数。 有没有这样的方法例如:
<Label Content="{Binding Path="{x:static lang:Lang.GetString, Parameters={parameter1}}"/>
或者是否有必要为每个可能的参数创建一个 ObjectDataProvider?
希望有人能帮助我。提前致谢!
最佳答案
我也有这个需求。我使用转换器“解决”了(如建议的 here )。
首先,创建一个返回翻译字符串的转换器:
public class LanguageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (parameter == null)
return string.Empty;
if (parameter is string)
return Resources.ResourceManager.GetString((string)parameter);
else
return string.Empty;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
然后将其用于 XAML:
<Window.Resources>
<local:LanguageConverter x:Key="LangConverter" />
</Window.Resources>
<Label Content="{Binding Converter={StaticResource LangConverter},
ConverterParameter=ResourceKey}"/>
问候。
关于c# - XAML 绑定(bind)到带有参数的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15520579/