Silverlight Toolkit有一个名为Resources.resx的资源文件,其中包含交换机的“On”和“Off”字符串状态。但是当我添加了一个相应的本地化资源,Resources.ru-RU.resx时,本地化并未获得它(尽管类似的方法适用于我自己的资源)。
一种方法是为ToggleSwitch内容创建自己的绑定,但我希望有一个非编码解决方案。可能的?
答案 0 :(得分:6)
可以通过DataTemplate实现Silverlight Toolkit中的本地化ToggleSwitch
<toolkit:ToggleSwitch x:Name="MySwitch" Header="Localized Switch">
<toolkit:ToggleSwitch.ContentTemplate>
<DataTemplate>
<ContentControl HorizontalAlignment="Left"
Content="{Binding Converter={StaticResource Switch}}"/>
</DataTemplate>
</toolkit:ToggleSwitch.ContentTemplate>
</toolkit:ToggleSwitch>
声明ValueConverter:
public class BoolToSwitchConverter : IValueConverter
{
private string FalseValue = Resources.Off;
private string TrueValue = Resources.On;
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
if (value == null)
return FalseValue;
else
return ("On".Equals(value)) ? TrueValue : FalseValue;
}
public object ConvertBack(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
return value != null ? value.Equals(TrueValue) : false;
}
}
更多详情here。
答案 1 :(得分:2)
您需要为资源文件ControlResources.ru-RU.resx
命名,请参阅主题Andrej Torzen's article。