大家好,我已经做了一些不太好的事我应该说。现在,当我的应用程序处于最后阶段并且接近完成时,我需要一个设置页面,我可以设置,如果度量单位应该是英制或公制。
我现在遇到的问题是我有20个文本块绑定到不同的滑块,如下所示:
<TextBlock x:Name="spring" Text="Spring" />
<TextBlock Text="{Binding Path=Value, Mode=TwoWay,StringFormat='0.00 inch', ElementName=springslider}" Margin="300,-21,0,0" x:Name="springData" />
<Slider Name="springslider" Background="{StaticResource PhoneAccentBrush}" Maximum="1" Minimum="0" SmallChange="5" />
在textblock文本绑定中,我已将StringFormat设置为0.00英寸,如果我选择公制,我希望它将stringformat更改为0.0 mm。
有什么想法吗?
答案 0 :(得分:1)
编写一个字符串转换器类,它将获取该值并根据您设置的settings属性返回不同的值 - 类似于:
public class StringFormatConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
if (Settings.FormatSetting == FormatSettings.Metric)
return (string)value + " mm";
else return (string)value + " inch";
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
return value;
}
}
然后将转换器添加到您的资源字典之一:
<common:StringFormatConverter x:Key="StringFormatConverter" />
然后在绑定时使用它:
<TextBlock Text="{Binding Path=Value, Mode=TwoWay, Converter={StaticResource StringFormatConverter}, ElementName=springslider}" Margin="300,-21,0,0" x:Name="springData" />