wp7 - stringformat更改文本块字符串格式的英制和公制

时间:2012-09-23 15:48:55

标签: windows-phone-7 string-formatting metric

大家好,我已经做了一些不太好的事我应该说。现在,当我的应用程序处于最后阶段并且接近完成时,我需要一个设置页面,我可以设置,如果度量单位应该是英制或公制。

我现在遇到的问题是我有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。

有什么想法吗?

1 个答案:

答案 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" />