代码改变世界

WP7备注(31)(Converter)

2011-05-03 12:23  血糯米Otomii  阅读(266)  评论(0编辑  收藏  举报

基本代码:

namespace SliderBindings
{
public class TruncationConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
if (value is double)
return Math.Round((double)value);
return value;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
return value;
}
}
}
xmlns:local="clr-namespace:SliderBindings"

<phone:PhoneApplicationPage.Resources>
<local:TruncationConverter x:Key="truncate" />
</phone:PhoneApplicationPage.Resources>

<TextBlock Name="txtblk"
Text="{Binding ElementName=slider, Path=Value,
Converter={StaticResource truncate}}" … />

带格式化的IConverter:

public class StringFormatConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
if (targetType == typeof(string) && parameter is string)
return String.Format(parameter as string, value);
return value;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
return value;
}
}
Text="{Binding ElementName=slider,
Path=Value,
Converter={StaticResource stringFormat},
ConverterParameter='The slider is {0:F2}'}"